我已经使用 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-compose 文件后,一切正常,我可以使用docker service ls
命令查看它们。
问题:我想要的是我不知道如何在分布式容器中使用卷。它是否像在 Docker 站点中找到的 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: