自定义网络实现跨主机Docker通信

本文详细介绍了如何通过设置环境参数分配,分别在主控和线卡宿主机上创建自定义网络,实现跨主机Docker容器的互通。在主控宿主机和线卡宿主机上,创建了相同网段的自定义网络,并为容器分配IP,确保在同一宿主机内的容器可以ping通宿主机。然后,通过添加路由规则,成功实现了不同宿主机上的容器间的通信。
摘要由CSDN通过智能技术生成

环境参数分配

主控master

宿主机ip:eth0 192.168.83.83

容器分配网段:172.172.0.0/24

启动容器指定ip:172.172.0.10

线卡lp

宿主机ip:eth0 192.168.83.85

容器分配网段:172.172.1.0/24

启动容器指定ip:172.172.1.10

主控宿主机操作

创建自定义网络之前,主机环境:

[root@jamza_vm_master_litepaas master]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.6.252  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::42:c6ff:fe05:2363  prefixlen 64  scopeid 0x20<link>
        ether 02:42:c6:05:23:63  txqueuelen 0  (Ethernet)
        RX packets 562  bytes 35144 (34.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 223  bytes 19338 (18.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker_gwbridge: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.240.0  broadcast 0.0.0.0
        inet6 fe80::42:42ff:fe41:eebc  prefixlen 64  scopeid 0x20<link>
        ether 02:42:42:41:ee:bc  txqueuelen 0  (Ethernet)
        RX packets 3527525  bytes 183431812 (174.9 MiB)
        RX errors 0  dropped 15  overruns 0  frame 0
        TX packets 1455  bytes 93698 (91.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.83.83  netmask 255.255.255.0  broadcast 192.168.83.255
        inet6 fe80::5054:83ff:feaa:bb00  prefixlen 64  scopeid 0x20<link>
        ether 52:54:83:aa:bb:00  txqueuelen 1000  (Ethernet)
        RX packets 83274207  bytes 364679223968 (339.6 GiB)
        RX errors 0  dropped 15  overruns 0  frame 0
        TX packets 94593718  bytes 213226263982 (198.5 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth20: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.84.83  netmask 255.255.255.0  broadcast 192.168.84.255
        inet6 fe80::5054:83ff:feaa:bb20  prefixlen 64  scopeid 0x20<link>
        ether 52:54:83:aa:bb:20  txqueuelen 1000  (Ethernet)
        RX packets 10557267  bytes 703540934 (670.9 MiB)
        RX errors 0  dropped 7026900  overruns 0  frame 0
        TX packets 1441  bytes 92630 (90.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth21: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.85.83  netmask 255.255.255.0  broadcast 192.168.85.255
        inet6 fe80::5054:83ff:feaa:bb21  prefixlen 64  scopeid 0x20<link>
        ether 52:54:83:aa:bb:21  txqueuelen 1000  (Ethernet)
        RX packets 3527525  bytes 183431812 (174.9 MiB)
        RX errors 0  dropped 15  overruns 0  frame 0
        TX packets 1455  bytes 93698 (91.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 34438746  bytes 4372079263 (4.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 34438746  bytes 4372079263 (4.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@jamza_vm_master_litepaas master]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a78327e048e0        bridge              bridge              local
b919f69968ec        docker_gwbridge     bridge              local
032c767b11de        host                host                local
cad8d79e6d05        none                null                local

创建自定义网络,指定网桥名称为docker-br0,当然也可以取其他的名字,指定网桥的网段为172.172.0.0/24:

[root@jamza_vm_master_litepaas master]# docker network create --subnet=172.172.0.0/24 docker-br0
760119ea59076b90d02d0d8ee69fff176ac07bb30b8c78b4f4466fd7c46c2f1d
[root@jamza_vm_master_litepaas master]#

创建网络后,查看当前主机的网络环境,环境中多出了名称为br-760119ea5907的网卡,且docker网络出现刚创建的名称为docker-br0的网络:

[root@jamza_vm_master_litepaas master]# ifconfig
br-760119ea5907: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.172.0.1  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 02:42:0c:76:ad:5d  txqueuelen 0  (Ethernet)
        RX packets 10557312  bytes 703543934 (670.9 MiB)
        RX errors 0  dropped 7026930  overruns 0  frame 0
        TX packets 1441  bytes 92630 (90.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.6.252  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::42:c6ff:fe05:2363  prefixlen 64  scopeid 0x20<link>
        ether 02:42:c6:05:23:63  txqueuelen 0  (Ethernet)
        RX packets 562  bytes 35144 (34.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 223  bytes 19338 (18.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker_gwbridge: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.240.0  broadcast 0.0.0.0
        inet6 fe80::42:42ff:fe41:eebc  prefixlen 64  scopeid 0x20<link>
        ether 02:42:42:41:ee:bc  txqueuelen 0  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值