consul实现跨容器互通

需要用到配置管理中心consul,实现跨容器互通

一、准备环境

consul管理中心(IP:192.168.1.99)

docker pull progrium/consul 

docker run -d -p 8500:8500 -name consul  progrium/consul  -server -bootstrap

第一台宿主机:(IP:192.168.1.100)

vim /etc/docker/daemon.json

增加:
{
    "cluster-store":"consul:192.168.1.99:8500",
    "cluster-advertise":"192.168.1.100:2375"
}

保存后:
systemctl daemon-reload         #重载配置
systemctl restart docker    #记得关闭防火墙,selinux之类的。

第二台宿主机:(IP:192.168.1.200)

vim /etc/docker/daemon.json

增加:
{
    "cluster-store":"consul:192.168.1.99:8500",
    "cluster-advertise":"192.168.1.200:2375"
}

保存后:
systemctl daemon-reload         #重载配置
systemctl restart docker    #记得关闭防火墙,selinux之类的。

二、开始配置

1.第一台宿主机:(IP:192.168.1.100)

创建网络:    docker network create -d overlay my_net1

验证是网络否创建同步: docker network ls,到第二台宿主机执行同样命令,看看my_net1网络是否同步过去。

运行容器

docker run -it --rm --network my_net1 nginx

2.第二台宿主机:(IP:192.168.1.200)

运行容器

docker run -it --rm --network my_net1 nginx

三、验证

进入容器终端,Ping对端容器IP,一般就可以通信了。