Specify —net=none when starting the container, indicating that no network information is configured in the started Container, and the Container you see after starting The information inside is as follows: There is no eth0 interface and only one lo loopback interface. But it still has its own independent network namespace.
root@10-10-63-106 ~]# docker run -i -t --rm--net=none centos6.3-base-v2 /bin/bash
[root@4685a85d0e11/]# ifconfig
loLink encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns: 0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
docker run -i -t --rm --net=nonefrankzfz/centos6.3-base-v1 /bin/bash
[root@0861fd7f405a /]# ifconfig
loLink encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions :0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
Get the process number of the container,
[root@10- 10-63-106 ~]# docker inspect -f'{{.State.Pid}}' 0861fd7f405a
695
[root@10-10-63-106 ~]# docker inspect -f'{{.State.Pid}}' 4685a85d0e11
638
Create a trace file of the network namespace
[root@10-10-63-106 ~]# mkdir -p/var/run/netns
[root@10-10-63-106 ~]# ln -s/proc/695/ns/net /var/run/netns/695
[root@10-10-63-106 ~]# ln -s/proc/638/ns/net /var/run/netns/638
Create a pair of peer interfaces, A is designated as the interface name of Container_ID=0861fd7f405a, B is designated as Container_ID=4685a85d0e11, and routing information is added. Their next hops point to the peer IP address.
[root@10-10-63-106 ~]# ip link add A typeveth peer name B
[root@10-10-63-106 ~]# ip link set A netns695
[root@10-10-63-106 ~]# ip netns exec 695 ipaddr add 10.1.1.1/32 dev A
[root@10-10-63-106 ~ ]# ip netns exec 695 iplink set A up
[root@10-10-63-106 ~]# ip netns exec 695 iproute add 10.1.1.2/32 dev A
[root @0861fd7f405a /]# ifconfig
ALink encap:Ethernet HWaddrCA:39:26:CD:24:BD
inet addr:10.1.1.1 Bcast:0.0.0.0Mask:255.255.255.255
UP BROADCAST MULTICASTMTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped: 0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
loLink encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@10 -10-63-106 ~]# ip link set B netns638
[root@10-10-63-106 ~]# ip netns exec 638 ip addr add 10.1.1.2/32 devB
[root@10-10-63-106 ~]# ip netns exec 638 iplink set B up
[root@10-10-63-106 ~]# ip netns exec 638 iproute add 10.1. 1.1/32 dev B
[root@4685a85d0e11 /]# ifconfig
BLink encap:Ethernet HWaddrFE:38:13:D9:2F:87
inet addr:10.1 .1.2Bcast:0.0.0.0Mask:255.255.255.255
inet6 addr: fe80::fc38:13ff:fed9:2f87/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500 Metric: 1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:648 (648.0 b) TXbytes:648 (648.0 b)
loLink encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen: 0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
Ping the IP address of one Container to the other to ensure that the two Containers can communicate.
[root@4685a85d0e11/]# ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) bytes ofdata.
64 bytes from 10.1. 1.1: icmp_seq=1 ttl=64time=0.084 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64time=0.071 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl =64time=0.073 ms
64 bytes from 10.1.1.1: icmp_seq=4 ttl=64time=0.069 ms
^C
--- 10.1.1.1 ping statistics - --
4 packets transmitted, 4 received, 0%packet loss, time 3505ms
rtt min/avg/max/mdev =0.069/0.074/0.084/0.008 ms
References:
https://docs.docker.com/articles/networking/