无法在mac上启动2 cassandra容器
问题描述:
我有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
谢谢你,我会感谢你的帮助。
答
137内存不足错误。如果以默认设置启动,Cassandra会使用大量内存。默认情况下,它占用系统内存的1/4。对于每个instan。您可以使用环境变量来限制内存使用情况(请参阅我的示例)
Docker撰写为其运行的每个目录创建一个网络。使用您的设置,两个节点将永远无法找到对方。这是我测试的结果,你的文件被放到两个目录中; cass1
和cass1
$ 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