2017-10-20 64 views
1

我有cassandra容器的情况。无法在mac上启动2 cassandra容器

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

码头工人,compose.yaml文件夹1

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' 

码头工人,compose.yaml文件夹2

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,系统工作良好,后我在文件夹2上使用cassandra。但是此时,文件夹1上的服务cassandra会自动终止。所以我不明白他们,请问你们,谁有Docker的经验可以帮助我解释这种情况?

在cassandra_1的错误后,我跑cassandra_2

cassandra-cluster-node-1 exited with code 137 

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

回答

3

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

Docker撰写为其运行的每个目录创建一个网络。使用您的设置,两个节点将永远无法找到对方。这是我测试的结果,你的文件被放到两个目录中; 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。所以这两个节点不会找到对方。

如果你希望他们能够找到对方,你必须给第一个用作种子以第二个,他们必须要在同一网络中(同泊坞窗,撰写文件)

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