–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'

如果是相关的,则::1127.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永远不会被执行。