docker-compose zookeeper集群 Cannot assign requested address

我是使用如下docker-compose.yml在2台主机上启动的服务,一台可以,但另一台一直不行,始终报连不上。

version: '2'
services:
  zookeeper:
    image: zookeeper:3.6.3
    restart: always
    volumes:
    - /data/zookeeper/data:/data
    ports:
      - "2181:2181"
      - "2888:2888"
      - "3888:3888"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=$machine_ip:2888:3888
     

整了大半天...各种方法都试了,没啥用,感觉不是配置的问题。

最后仔细一看,一台机器明明我配置的是ZOO_MY_ID: 2的机器,一直报自己是ZOO_MY_ID: 1的身份去连别人连不上的错...

woc!瞬间明白了。。。因为我原来使用的是单主机单个zookeeper服务,想升级成多主机的zookeeper集群,就在原有的docker-compose配置上追加了environment 的内容,直接docker-compose up -d,没做其他修改。猜测他始终认为自己id=1是不是之前老的数据挂载影响了,就把宿主机挂载的目录(/data/zookeeper/data)删除了,删除容器重新起,结果:就好了!

我真的是。。。

很多问题,都是挂载数据引起的,包括遇到的因为目录权限引起的各式各样的问题,还是要注意。

你可能感兴趣的:(Java,docker,zookeeper,linux,docker-compose)