如何使用 Docker 在分布式 Cassandra 容器中共享 Docker-Compose 卷
How to Share a Docker-Compose Volume in Distributed Cassandra Container using Docker
我已经使用 Docker-Compose
配置了 cassandra
的分布式版本。
这是我的 docker-compose.yml 文件:
version: '3.0'
services:
cassandra-masters:
image: strapdata/elassandra
environment:
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-masters
cassandra-slaves1:
image: strapdata/elassandra
environment:
CASSANDRA_SEEDS: tasks.cassandra-masters
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-slaves1
depends_on:
- cassandra-masters
在 运行 使用 sudo docker stack deploy elassandra --compose-file docker-compose.yml
编写 docker 文件后,一切正常,我可以使用 docker service ls
命令查看它们。
问题:我想要的是我不知道如何在分布式容器中使用卷。是不是像Docker's site中的docker-compose的正常配置?还是不同?
解决方案 我试过如下命名卷,这种方法(分布式)和普通方法没有任何区别。唯一应该考虑的是卷应该共享:
version: '3.0'
services:
cassandra-masters:
image: strapdata/elassandra
environment:
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-masters
volumes:
- app-volume:/var/lib/cassandra
cassandra-slaves1:
image: strapdata/elassandra
environment:
CASSANDRA_SEEDS: tasks.cassandra-masters
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-slaves1
depends_on:
- cassandra-masters
volumes:
- app-volume:/var/lib/cassandra
volumes:
app-volume:
我已经使用 Docker-Compose
配置了 cassandra
的分布式版本。
这是我的 docker-compose.yml 文件:
version: '3.0'
services:
cassandra-masters:
image: strapdata/elassandra
environment:
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-masters
cassandra-slaves1:
image: strapdata/elassandra
environment:
CASSANDRA_SEEDS: tasks.cassandra-masters
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-slaves1
depends_on:
- cassandra-masters
在 运行 使用 sudo docker stack deploy elassandra --compose-file docker-compose.yml
编写 docker 文件后,一切正常,我可以使用 docker service ls
命令查看它们。
问题:我想要的是我不知道如何在分布式容器中使用卷。是不是像Docker's site中的docker-compose的正常配置?还是不同?
解决方案 我试过如下命名卷,这种方法(分布式)和普通方法没有任何区别。唯一应该考虑的是卷应该共享:
version: '3.0'
services:
cassandra-masters:
image: strapdata/elassandra
environment:
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-masters
volumes:
- app-volume:/var/lib/cassandra
cassandra-slaves1:
image: strapdata/elassandra
environment:
CASSANDRA_SEEDS: tasks.cassandra-masters
CASSANDRA_LISTEN_ADDRESS: tasks.cassandra-slaves1
depends_on:
- cassandra-masters
volumes:
- app-volume:/var/lib/cassandra
volumes:
app-volume: