Docker 跨主机互联方法(添加静态路由法)
环境
主机 | IP |
---|---|
docker1 | 192.168.31.178 |
docker2 | 192.168.31.188 |
前提:
- 安装好 docker
- 关闭防火墙和 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 访问,但是没有办法通过主机名访问