–net = host的Cassandra容器会立即退出
作为这个项目的一部分,我试图推出官方的Cassandra Docker 镜像 。
docker run -d --name cassandra cassandra
成功启动容器。
然而,我需要docker run -d --name cassandra
--net=host
cassandra
因为项目的其他部分以这种方式工作。 如果我使用--net=host
,容器启动,然后立即退出。
以下是docker ps -a
必须说的:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9f4992f06a30 cassandra:latest "/docker-entrypoint.s" 10 seconds ago Exited (3) 5 seconds ago cassandra
日志说有一个错误: Unknown listen_address '::1 127.0.0.1'
如果是相关的,则::1
和127.0.0.1
都存在于我的/etc/hosts
:
127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost
这里是完整的日志输出失败容器和这里的docker info
输出。 为了比较, 这里是成功运行实例的日志(没有--net=host
)。
行为是否存在与项目的其他部分,与:3
, :3.5
, :3.7
和:latest
图像。
在/ etc / hosts上删除line :: 1将解决这个问题。
正如这里所推荐的,重写CASSANDRA_LISTEN_ADDRESS
作品就是这样的:
docker run -d --name cassandra --net=host -e CASSANDRA_LISTEN_ADDRESS='127.0.0.1' cassandra
此外,确保至less4Gb的RAM(交换也很好)是可用的 – 否则Cassandra容器也将立即退出,具有不同的错误信息。
似乎没有指定设备和地址,Cassandra 默认为本地地址 。
据推测,当hosts
文件有几个条目(例如IPv4和IPv6的),这两个都返回,这不是预期的,或类似的东西。 手动提供127.0.0.1
确保path永远不会被执行。