Docker 跨主机互联方法(添加静态路由法)

环境

主机 IP
docker1 192.168.31.178
docker2 192.168.31.188

前提:

  1. 安装好 docker
  2. 关闭防火墙和 selinux
# 两个主机添加内核转发参数
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p /etc/sysctl.conf

修改 Docker 容器内部 ip

# docker1 指定为 172.17.2.1/24 网络
cat /etc/docker/daemon.json 
{
        "bip":"172.17.2.1/24"
}

# docker2 指定为 172.17.3.1/24 网络
cat /etc/docker/daemon.json 
{
        "bip":"172.17.3.1/24"
}

添加路由规则

# docker1 
route add -net 172.17.3.0 netmask 255.255.255.0 gw 192.168.31.188

systemctl restart docker

# docker2
route add -net 172.17.2.0 netmask 255.255.255.0 gw 192.168.31.178
systemctl restart docker

测试

# docker1
docker run -it -d --name centos8_1 centos:centos8
docker exec -it centos8_1 /bin/bash

# docker2
docker run -it -d --name centos8_2 centos:centos8
docker exec -it centos8_2 /bin/bash


docker1

结论:

两个主机中的 docker 容器可以通过 ip 访问,但是没有办法通过主机名访问

posted @ 2021-08-21 22:34  klvchen  阅读(1010)  评论(0编辑  收藏  举报