目录
创建存储卷容器
docker run -d --volume /var/lib/cassandra/data --name cass-shared alpine echo Data Container
容器创建后将立即停止,我们会在创建运行新的Cassandra 新容器时,使用这个存储卷。
docker run -d --volumes-from cass-shared --name cass1 cassandra:2.2
接下来从cassandra:2.2镜像中启动容器,运行Cassandra客户端工具,并连接正在进行运行的服务器:
docker run -it --rm --link cass1:cass cassandra:2.2 cqlsh cass
终端返回界面:
Connected to Test Cluster at cass:9042.[cqlsh 5.0.1 | Cassandra 2.2.10 | CQL spec 3.3.1 | Native protocol v4]Use HELP for help.cqlsh>
现在,我们可以用CQLSH命令行检查或修改Cassandra数据库。
首先查找一个名为docker_hello_world 的 键空间:cqlsh> select * ... from system.schema_keyspaces ... where keyspace_name = 'docker_hello_world';
查询结果:
keyspace_name | durable_writes | strategy_class | strategy_options---------------+----------------+----------------+------------------(0 rows)
Cassadra 返回一个空列表。
接下来用以下命令创建键空间:
cqlsh> create KEYSPACE docker_hello_world... with replication = {... 'class' : 'SimpleStrategy',... 'replication_factor': 1... };cqlsh> select *... FROM system.schema_keyspaces ... where keyspace_name = 'docker_hello_world';
显示结果:
keyspace_name | durable_writes | strategy_class | strategy_options --------------------+----------------+---------------------------------------------+----------------------------docker_hello_world | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"}(1 rows)
执行命令行 quit
退出CQLSH程序并停止客户端容器
cqlsh> quit #Leave and stop the crurrent container
通过停止和去除所创建的Cassandra 节点, 清理该示例的第一部分
docker stop cass1 docker rm -vf cass1
创建一个新的Cassandra 节点,连接客户端,并查询键空间。
docker run -d --volumes-from cass-shared --name cass2 cassandra:2.2docker run -it --rm --link cass2:cass cassandra:2.2 cqlsh cassselect *from system.schema_keyspaceswhere keyspace_name = 'docker_hello_world';
效果如下图:
最后一个命令返回单个条目,将会和你前面一个容器中创建的键空间相匹配,这证实了存储卷可以被用于创建持久化的系统。 先退出CALSH程序并清理工作区。确保删除该存储容器:quitdocker rm -vf cass2 cass-shared