docker 跨主机通信:Overlay网络与consul注册
docker01:192.168.109.137
docker02:192.168.109.138
docker01安装consul
docker run -d -p 8500:8500 -h consul --name consul --restart always progrium/consul -server -bootstrap
修改/usr/lib/systemd/system/docker.service文件,将本机网络信息注册到consul中
备份:cp /usr/lib/systemd/system/docker.service{,.bak}
修改:
注释原有参数:
##ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376 --cluster-store=consul://192.168.109.137:8500 --cluster-advertise=192.168.109.137:2376
解释:
-H tcp://0.0.0.0:2376 ##开启dokcer的2376端口
--cluster-store ##指定consul地址和端口
--cluster-advertise ##将本机IP和端口注册到consul中
重启docker01
systemctl daemon-reload
systemctl restart docker
docker02 参考docker01 修改重启~
页面管理:
http://192.168.109.137:8500/
KEY/VALUE --> docker --> nodes -->

创建Overlay网络:
在任意一个节点创建一个overlay网络
[root@test_01 docker-ce]# docker network create -d overlay myoverlay
6e9028dfc9344d3709a28ae9c5e518b973dd3f795e199fb6dc322039be2ca7a6
[root@test_01 docker-ce]#
[root@test_01 docker-ce]# docker network ls
NETWORK ID NAME DRIVER SCOPE
689eaa0ec65f bridge bridge local
f8dedd1fcfd5 host host local
6e9028dfc934 myoverlay overlay global
25ec16069929 none null local
[root@test_01 docker-ce]#
docker network inspect myoverlay
"Config": [
{
"Subnet": "10.0.0.0/24",
"Gateway": "10.0.0.1"
}
]
默认的网段是"Subnet": "10.0.0.0/24"
创建时手动修改命令:
[root@test_01 docker-ce]# docker network create -d overlay --subnet 172.16.1.0/24 --gateway 172.16.1.254 myoverlay
验证Overlay网络:
这时在docker02节点查看也会有这个网络
docker network ls
在docker01主机创建一个容器
docker run -id --name=docker01 --net=myoverlay rockylinux:9.0
在docker02主机创建一个容器
docker run -id --name=docker02 --net=myoverlay rockylinux:9.0
进入容器查看网络:
[root@test_01 docker-ce]# docker exec -it docker01 bash
[root@3d00525e7b14 /]#
[root@3d00525e7b14 /]# hostname -i
10.0.0.2
[root@3d00525e7b14 /]# hostname -I
10.0.0.2 172.18.0.2
[root@3d00525e7b14 /]#
互相ping测试~
更多推荐



所有评论(0)