无法在mac上启动2个cassandra容器

时间:2017-10-20 18:46:38

标签: docker cassandra docker-compose

我遇到过cassandra容器的情况。

我在不同的文件夹中有2个docker-compse.yaml文件。

文件夹1中的docker-compose.yaml

version: "3"
services:
  cassandra-cluster-node-1:
    image: cassandra:3.0
    container_name: cassandra-cluster-node-1
    hostname: cassandra-cluster-node-1
    ports:
      - '9142:9042'
      - '7199:7199'
      - '9160:9160'

文件夹2中的docker-compose.yaml

version: "3"
services:
  cassandra-cluster-node-2:
    image: cassandra:3.0
    container_name: cassandra-cluster-node-2
    hostname: cassandra-cluster-node-2
    ports:
      - '9242:9042'
      - '7299:7199'
      - '9260:9160'

我尝试在文件夹1上升cassandra,系统运行良好,之后我在文件夹2上升cassandra。但此时,文件夹1上的服务cassandra会自动终止。所以我不理解他们,你们有可能吗,有Docker经验可以帮助我解释这种情况吗?

运行cassandra_2后cassandra_1中的错误

cassandra-cluster-node-1 exited with code 137

谢谢,我会感激你的帮助。

1 个答案:

答案 0 :(得分:3)

137内存不足错误。如果以默认设置启动,Cassandra会占用大量内存。默认情况下,它占系统内存的1/4。对于每个instans。您可以使用环境变量限制内存使用量(请参阅下面的示例)

Docker compose为其运行的每个目录创建一个网络。通过您的设置,两个节点将永远无法找到彼此。这是我测试的输出,你的文件放在两个目录中; cass1cass1

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
dbe9cafe0af3        bridge              bridge              local
70cf3d77a7fc        cass1_default       bridge              local
41af3e02e247        cass2_default       bridge              local
21ac366b7a31        host                host                local
0787afb9aeeb        none                null                local

您可以看到两个网络cass1_default和cass2_default。所以两个节点不会找到对方。

如果你想让他们找到对方,你必须将第一个作为种子给第二个,并且他们必须在同一个网络中(相同的docker-compose文件)

version: "3"
services:
  cassandra-cluster-node-1:
    image: cassandra:3.0
    container_name: cassandra-cluster-node-1
    hostname: cassandra-cluster-node-1
    environment:
      - "MAX_HEAP_SIZE=1G"
      - "HEAP_NEWSIZE=256M"
    ports:
      - '9142:9042'
      - '7199:7199'
      - '9160:9160'

  cassandra-cluster-node-2:
    image: cassandra:3.0
    container_name: cassandra-cluster-node-2
    hostname: cassandra-cluster-node-2
    environment:
      - "MAX_HEAP_SIZE=1G"
      - "HEAP_NEWSIZE=256M"
      - "CASSANDRA_SEEDS=cassandra-cluster-node-1"
    ports:
      - '9242:9042'
      - '7299:7199'
      - '9260:9160'
    depends_on:
      - cassandra-cluster-node-1