【发布时间】:2020-10-03 04:34:49
【问题描述】:
我正在尝试为 Cassandra CQL 创建一个新的 docker 容器,该容器连接到作为另一个 docker 容器运行的 Cassandra 集群。
现状:
我通过执行以下命令创建了一个新的 Cassandra 映像“cassandra”和名为“container-node”的容器:
- docker pull cassandra
- 码头图片 | grep cassandra
- docker run -d --name cassandra-node --publish 9042:9042 cassandra
- 连接到容器:docker exec -it cassandra-node bash (在 127.0.0.1:9042 连接到测试集群)
键空间创建
- 创建键空间:CREATE KEYSPACE first_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1}
- 连接到密钥空间:使用 first_keyspace
- 创建表:CREATE TABLE first_keyspace.user (USERID int PRIMARY KEY, USERNAME text, CITY text); 插入数据:
- 插入用户(用户 ID、用户名、城市)值(1、'JOHN'、'PARIS');
- 插入用户(用户 ID、用户名、城市)值(2、'ABD'、'SAFRICA');
- 获取数据:select * from user;
详细问题说明
想要为 CQL (cqlsh) 创建一个新的 Docker 容器(使用 Dockerfile),它将执行以下任务:
- 连接到作为 Docker 容器 (cassandra-host) 运行的 Cassandra 集群
- 执行从 source.sql 文件读取的所有任务添加/更新/删除功能。
我想知道我可以从哪里开始。 任何帮助,指点将不胜感激。
【问题讨论】:
-
为什么不直接使用
docker exec -ti running_image cqlsh? -
亚历克斯,感谢您的回复。我需要另一个容器作为 cqlsh,它将连接到外部 Cassandra 集群以执行键空间执行。
-
只使用同一张图片,只是覆盖入口点
标签: docker cassandra cql cqlsh