Configure the Docker network model-none
Specify-net = none when starting the Container, indicating that no network information is configured in the started Container. The information in the Container is shown as follows: there is no eth0 interface and there is only one lo loopback interface. However, you still have your 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 container process number,
[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 trail file for 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 peer interface, A is specified as the interface Name of Container_ID = 0861fd7f405a, B is specified as Container_ID = 4685a85d0e11, and route information is added. Their Next Hop is directed 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
[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
[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 FIG: 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 FIG: 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 the other Container to ensure that the two containers can communicate with each other.
[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 = 64 time = 0.084 MS
64 bytes from 10.1.1.1: icmp_seq = 2 ttl = 64 time = 0.071 MS
64 bytes from 10.1.1.1: icmp_seq = 3 ttl = 64 time = 0.073 MS
64 bytes from 10.1.1.1: icmp_seq = 4 ttl = 64 time = 0.069 MS
^ C
--- 10.1.1.1 ping statistics ---
4 packets transmitted, 4 bytes ed, 0% packet loss, time 3505 ms
Rtt min/avg/max/mdev = 0.069/0.074/0.084/0.008 MS
References:
Https://docs.docker.com/articles/networking/