如何使用 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: