因为存在docker容器 跨主机网络通信,所以可以先看这一篇:
【docker系列】解决阿里云多主机服务器,docker overlay 跨主机网络通信环境
环境:
三台为:11.11.11.11 、11.11.11.22 、11.11.11.33
每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点,
容器之间的网络采用overlay模式
一、创建 overlay 网络
# 创建 overlay 网卡,用于 集群服务的网卡设置(只需要在 master 节点上创建,从节点自然会获取)
docker network create --driver overlay --subnet=15.0.0.0/24 --gateway=15.0.0.254 --attachable ccluster-overlay-elk
二、创建并运行容器
1、创建容器
[root@master conf]# sudo docker run -dit \
--net cluster-overlay-elk \
--ip 15.0.0.250 \
--restart=always \
--privileged=true \
--hostname=hadoop_zookeeper \
--name=hadoop-zookeeper-one \
-p 12181:2181 \
-v /usr/docker/software/zookeeper/data/:/data/ \
-v /usr/docker/software/zookeeper/datalog/:/datalog/ \
-v /usr/docker/software/zookeeper/logs/:/logs/ \
-v /usr/docker/software/zookeeper/conf/:/conf/ \
-v /usr/docker/software/zookeeper/bin/:/apache-zookeeper-3.5.6-bin/bin/ \
-v /etc/localtime:/etc/localtime \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
zookeeper:3.5.6
2、更改配置文件 zoo.cfg
zoo.cfg 文件在 容器里面的目录为:/conf 因为我已经挂载到宿主机下的 /usr/docker/software/zookeeper/conf/ 。所以,直接进入宿主机目录,修改并重启容器:
[root@master conf]# clear
[root@master conf]# pwd
/usr/docker/software/zookeeper/conf
[root@master conf]# ll
total 8
-rw-r--r-- 1 mysql mysql 308 Jan 6 10:37 zoo.cfg
-rw-r--r-- 1 mysql mysql 146 Jan 6 11:05 zoo.cfg.dynamic.next
[root@master conf]# vim zoo.cfg
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
clientPort=2181
server.10=15.0.0.250:2888:3888
server.11=15.0.0.249:2888:3888
server.12=15.0.0.248:2888:3888
myid=10
说明:
clientPort: 表示 节点 端口
server.10