Docker中容器间的相互连接

本文详细介绍了如何实现Docker容器在同一主机间的互连,包括网络段相同和不同的情况。同时,讲解了跨主机的容器互连,通过macvlan配置实现不同主机上的容器通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同一主机之间的容器互连

一,容器的两个镜像网络段相同
1.创建一个bridge模式的网络

[root@server1 ~]#  docker network create --driver bridge my_net1
9b39a773266fd5a258b525ed1588ff3fcbb8e472973e8649d1d668b1d1e4b06c
[root@server1 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
95f49fb81eae        bridge              bridge              local
29040a8dbdc9        host                host                local
9b39a773266f        my_net1             bridge              local
9ea0c5751a06        none                null                local
[root@server1 ~]# ip addr
96: br-9b39a773266f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:73:c4:6d:40 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-9b39a773266f
       valid_lft forever preferred_lft forever
[root@server1 ~]# docker network inspect my_net1 
                {
                "Subnet": "172.18.0.0/16",
                "Gateway": "172.18.0.1"
            }

在这里插入图片描述
3.创建两个容器,都使用my_net1网络,可以互通

[root@server1 ~]# docker run -it --name vm1 --net my_net1 ubuntu
root@476ad6845211:/# ip addr
15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:13:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0

[root@server1 ~]# docker run -it --name vm2 --net my_net1 ubuntu
root@ff2c189df400:/# ip addr
17: eth0@if18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:13:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.3/16 brd 172.19.255.255 scope global eth0
       valid_lft forever preferred_lft forever
root@ff2c189df400:/# ping vm1
PING vm1 (172.18.0.2) 56(84) bytes of data.
64 bytes from vm1.my_net1 (172.18.0.2): icmp_seq=1 ttl=64 time=0.041 ms
^C
--- vm1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.040/0.040/0.041/0.006 ms

在这里插入图片描述
二,容器的两个镜像网络段不同
1.创建一个bridge的网络,自定义ip和网关

[root@server1 ~]#  docker network create --driver bridge --subnet 172.20.0.0/24 --gateway 172.20.0.1 my_net2 
d73d50d4b145e21b043ef1f078911ff11f9eada3a2b454b629bf745948b54256
[root@server1 ~]#  docker network inspect my_net2
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值