基于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

注意:

  1. linux内核版本需要3.12+
  2. docker主机名不能相同

步骤

  1. 下载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 &  
  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
  1. 创建overlay网络
docker network create -d overlay multi_host
  1. 创建测试容器
docker run -it --rm --net=multi_host busybox:latest
  1. 在容器中互ping