带有--net = host的Cassandra容器立即退出

时间:2016-07-19 14:12:22

标签: docker cassandra

我正在尝试启动官方Cassandra Docker image作为this项目的一部分。

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

Here的失败容器和heredocker info输出的完整日志输出。为了进行比较,here成功运行了实例的日志(没有--net=host)。

使用:3:3.5:3.7:latest图片,无论有没有项目的其他部分,都会出现行为。

2 个答案:

答案 0 :(得分:2)

根据建议here,覆盖CASSANDRA_LISTEN_ADDRESS的工作原理如下:

docker run -d --name cassandra --net=host -e CASSANDRA_LISTEN_ADDRESS='127.0.0.1' cassandra

此外,确保至少4Gb RAM(交换也没问题)可用 - 否则Cassandra容器也将立即退出,并显示不同的错误消息。

似乎既没有指定设备也没有指定地址,Cassandra defaultslocal address

据推测,当hosts文件具有该主机的多个条目(例如IPv4和IPv6)时,都会返回这两个条目,这是不期望的,或类似的东西。手动提供127.0.0.1可确保路径永远不会被执行。

答案 1 :(得分:1)

删除/ etc / hosts上的行:: 1将解决此问题。