直接路由方式实现跨主机Docker通信

概述

在两台宿主机分别创建自定义的docker网络,网络类型为bridge,在各自的宿主机上创建docker容器,容器连接至各自主机上的自定义网络。在宿主机上创建路由规则,实现两台宿主机上的容器之间的互联通信。

通过宿主机上的网络命名空间ID,向容器中添加多个网卡。

网络地址划分

主控主机

IP:192.168.83.83

网段:10.76.1.0/24

网关:10.76.1.1

自定义网络网桥名称:br01

容器IP地址:10.76.1.83、10.76.1.84、10.76.1.85

线卡主机

IP:192.168.83.85

网段:10.76.2.0/24

网关:10.76.2.1

自定义网络网桥名称:br02

容器IP地址:10.76.2.83、10.76.2.84、10.76.2.85

创建网络与容器

在主控主机上创建自定义网络的步骤流程如下:

[root@jamza_vm_master_litepaas route_net_test]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
5b591ed369ac        bridge              bridge              local
b919f69968ec        docker_gwbridge     bridge              local
032c767b11de        host                host                local
cad8d79e6d05        none                null                local
[root@jamza_vm_master_litepaas route_net_test]#
[root@jamza_vm_master_litepaas route_net_test]# docker network create --subnet=10.76.1.0/24 --gateway=10.76.1.1 -o "com.docker.network.bridge.name"=br01 -o "com.docker.network.bridge.enable_icc"=true net1
52318642206e51c48599d06f2d8a4473e23aa485084cc9ca48618cdfc6b867fd
[root@jamza_vm_master_litepaas route_net_test]#
[root@jamza_vm_master_litepaas route_net_test]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
5b591ed369ac        bridge              bridge              local
b919f69968ec        docker_gwbridge     bridge              local
032c767b11de        host                host                local
52318642206e        net1                bridge              local
cad8d79e6d05        none                null                local
[root@jamza_vm_master_litepaas route_net_test]#
[root@jamza_vm_master_litepaas route_net_test]# docker network inspect net1
[
    {
   
        "Name": "net1",
        "Id": "52318642206e51c48599d06f2d8a4473e23aa485084cc9ca48618cdfc6b867fd",
        "Created": "2019-08-06T14:18:03.256967046+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
   
            "Driver": "default",
            "Options": {
   },
            "Config": [
                {
   
                    "Subnet": "10.76.1.0/24",
                    "Gateway": "10.76.1.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
   },
        "Options": {
   
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.name": "br01"
        },
        "Labels": {
   }
    }
]
[root@jamza_vm_master_litepaas route_net_test]#

在主控主机上创建静态路由,表示访问10.76.2.0/24网段需经过192.168.83.85网卡(线卡主机),且经过本机eth0网卡。

[root@jamza_vm_master_litepaas route_net_test]#
[root@jamza_vm_master_litepaas route_net_test]# ip route
default via 192.168.83.1 dev eth0
10.76.1.0/24 dev br01 proto kernel scope link src 10.76.1.1
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth20 scope link metric 1003
169.254.0.0/16 dev eth21 scope link metric 1004
172.17.6.0/24 dev docker0 proto kernel scope link src 172.17.6.252
172.18.0.0/20 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.83.0/24 dev eth0 proto kernel scope link src 192.168.83.83
192.168.84.0/24 dev eth20 proto kernel scope link src 192.168.84.83
192.168.85.0/24 dev eth21 proto kernel scope link src 192.168.85.83
[root@jamza_vm_master_litepaas route_net_test]#
[root@jamza_vm_master_litepaas route_net_test]# ip route add 10.76.2.0/24 via 192.168.83.85 dev eth0
[root@jamza_vm_master_litepaas route_net_test]#
[root@j
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值