Docker实现跨主机容器访问流程

Docker实现跨主机容器访问流程:

 

  1. 分别在每个机器上执行命令创建网桥:

(注意:每个机器创建网桥的ip网段需不同)

(docker network create --subnet=ip网段/子网掩码 网桥名)

docker network create --subnet=172.172.0.0/24 docker-br0

 

  1. 在你自定义的网段选取任意IP地址作为你要启动容器IP:

(例如:在机器1上:docker run -i -d --net docker-br0 --ip 172.172.0.10 --name test1 centos /bin/bash

在机器2上:docker run -i -d --net docker-br0 --ip 172.172.1.10 --name test2 centos /bin/bash)

 

  1. 使用docker exec -it test1 /bin/bash 进入已启动的容器,使用 yum install net-tools 下载 iptables 然后使用ifconfig查看容器ip;

 

  1. 测试本机与容器之间是否互相ping通(ping 容器ip;ping 宿主机ip)

 

  1. 在宿主机配置路由表,实现跨主机访问:

(ip route add 对方容器所在的ip网段/子网掩码 via 对方虚拟机ip dev 通过哪个自己网卡通信)

ip route add 172.172.0.0/24 via 192.168.2.142 dev enp6s0

(添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用 ip route del 172.172.1.0/24  移除路由规则)

 

6.在每台宿主机上配置第五步实现不同容器之间的跨主机访问

7.添加永久路由

Ubuntu系统:在/etc下用root用户创建文件rc.local  (sudo vim rc.local)

 添加内容

(#!/bin/sh -e                                                                                                                                                                                    

# rc.local

route add -net 172.21.1.0 netmask 255.255.255.0 gw 192.168.2.142 dev enp0s25

route add -net 172.21.2.0 netmask 255.255.255.0 gw 192.168.2.143 dev enp0s25

route add -net 172.21.3.0 netmask 255.255.255.0 gw 192.168.2.146 dev enp0s25

exit 0)

重启电脑

Centos系统:在/etc/sysconfig/network-scripts下用root用户创建 route-enp7s0

(sudo vim  route-enp7s0)添加一下内容

(172.21.2.0/24 via 192.168.2.143 dev enp7s0

172.21.3.0/24 via 192.168.2.146 dev enp7s0

172.21.4.0/24 via 192.168.2.139 dev enp7s0)

注意,centos系统需要在/usr/lib/sysctl.d/00-system.conf文件中加入

 “net.ipv4.ip_forward=1”然后重启网络(service network restart)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值