同一主机之间的容器互连
一,容器的两个镜像网络段相同
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