我有一系列由docker-compose启动的容器。具体来说,它们是多个zookeeper容器:
zk1:
image: seven10/zookeeper:3.4.6
container_name: zk1
hostname: zk1
restart: always
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
environment:
- ZOOKEEPER_ID=1
net: ${MY_NETWORK_NAME}
volumes:
- /seven10/zk/zk1/data:/opt/zookeeper-3.4.6/data
zk2:
image: seven10/zookeeper:3.4.6
container_name: zk2
restart: always
hostname: zk2
ports:
- "2182:2181"
- "2889:2888"
- "3889:3888"
environment:
- ZOOKEEPER_ID=2
net: ${MY_NETWORK_NAME}
volumes:
- /seven10/zk/zk2/data:/opt/zookeeper-3.4.6/data
zk3:
image: seven10/zookeeper:3.4.6
container_name: zk3
hostname: zk3
restart: always
ports:
- "2183:2181"
- "2890:2888"
- "3890:3888"
environment:
- ZOOKEEPER_ID=3
net: ${MY_NETWORK_NAME}
volumes:
- /seven10/zk/zk3/data:/opt/zookeeper-3.4.6/data
所以当我开始启动容器时,zk1在开始时给我这个警告:
WARN [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 3 at
election address zk3:3888
java.net.UnknownHostException: zk3
但是几秒钟之后就没有关于zk3的任何其他内容了。 但是,zk1连续为zk2提供以下错误:
2016-02-18 15:28:57,384 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@233] - Unexpected exception, tries=0, connecting to zk2:2888
java.net.UnknownHostException: zk2
zk2并没有对zk1说过任何关于zk1的内容,但是短暂地抱怨zk3的“无法打开频道”错误。 zk3并不是每次都提到zk1或zk2。
所以最大的问题是zk1无法找到zk2。它只是垃圾邮件并拒绝来自kafka的连接。为什么会这样,我该如何解决这个问题?
我的开发盒在ubuntu 14.04上使用docker版本1.9.1和docker-compose版本1.5.1(我认为Mint Rafello?),尽管目标环境是ubuntu 15.10。
答案 0 :(得分:0)
您的主机系统是否知道如何将zk1 / 2/3链接到IP地址?如果您在同一节点上启动所有三个服务器,则应使用localhost作为主机名(服务器名称仍应是唯一的)