基于consul实现docker跨主机网络通信
前言
- IP:
- 192.168.0.10
- 192.168.0.11
- 系统版本:ubuntu 20.04
- consul版本:1.11.1 官网下载地址: https://www.consul.io/downloads
- docker版本:18.06.3
注意:
- linux内核版本需要3.12+
- docker主机名不能相同
步骤
- 下载consul的二进制包并启动
nohup /home/web/consul/bin/consul agent -server -bootstrap -ui -data-dir /home/web/consul/data -client=192.168.0.10 -bind=192.168.0.10 > /home/web/consul/log/consul.log 2>&1 &
- 配置docker守护进程链接consul。修改docker.service文件
# --cluster-store的地址为consul服务的IP
# --cluster-advertise的地址为docker主机的IP
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --cluster-store consul://192.168.0.10:8500 --cluster-advertise=192.168.0.10:2375
- 创建overlay网络
docker network create -d overlay multi_host
- 创建测试容器
docker run -it --rm --net=multi_host busybox:latest
- 在容器中互ping