Docker && 网络操作指南

3- Docker网络操作指南

 

Docker的网络一共分为四种模式

  • 封闭模式网络容器空间  Closed Container  解释:孤独的岛,不存在任何网络连接,只有一个lo   
  • 桥接模式网络容器空间  Bridged Container  解释:桥接模式,创建两个虚拟网络设备,一个在容器中,一个在Docker桥上
  • 联盟模式网络容器空间  Joined_A Container and Joined_B Container  解释:Joined_A Container容器有自己的网络名称空间,在创建Joined_B Container的容器后共享Joined_A Container容器的网络名称空间,Joined_A Container容器和Joined_B Container容器的进程通过本地lo进行通信。
  • 联盟模式的升级版网络容器空间  Open Container  解释:当创建一个容器后,把网络名称空间与Docker宿主机的网络进行共享

 

3-1 封闭模式网络容器空间  Closed Container

 

3-1-1 创建封闭模式网络容器空间

 

# docker run --name liuqi_busybox_close-network -it -h liuqi-docker-01 --network none --rm busybox:latest

/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # hostname 
liuqi-docker-01

 

3-1-2 自定义修改Docker默认容器中的IP地址网段

 

# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"bip" : "192.168.254.1/24"
}

# systemctl restart docker.service

# docker run --name liuqi-03 -it --rm busybox:latest
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:C0:A8:FE:02  
          inet addr:192.168.254.2  Bcast:192.168.254.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 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:508 (508.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

3-2 桥接模式网络容器空间  Bridged Container

 

3-2-1 创建bridge网桥模式的Docker容器

 

# docker run --name liuqi_busybox_close-network -it -h liuqi-docker-01 --network bridge --dns 114.114.114.114 --rm busybox:latest

/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 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:1156 (1.1 KiB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # cat /etc/resolv.conf 
nameserver 114.114.114.114

 

3-2-2 创建自定义Docker网桥,让容器加入到这个自定义网桥中使用

 

# docker network create -d bridge --subnet "192.168.110.0/24" --gateway "192.168.110.1" liuqi-bridge-0
02180f0c95708288bd037da787e9706c816aaf21019b43d24fb9f884e3e69d02

[root@master-01 ~]# docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE
f2eca7e22541        bridge              bridge              local
9c62a6e086fc        host                host                local
02180f0c9570        liuqi-bridge-0      bridge              local
5fb4a5e690eb        none                null                local

[root@master-01 ~]# ifconfig | grep br
br-02180f0c9570: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.110.1  netmask 255.255.255.0  broadcast 192.168.110.255
        inet 192.168.254.1  netmask 255.255.255.0  broadcast 192.168.254.255
        inet 192.168.0.71  netmask 255.255.255.0  broadcast 192.168.0.255

# docker run --name liuqi-01 --network liuqi-bridge-0 -it --rm busybox:latest
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:C0:A8:6E:02  
          inet addr:192.168.110.2  Bcast:192.168.110.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 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:508 (508.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # ping www.baidu.com
PING www.baidu.com (61.135.169.121): 56 data bytes
64 bytes from 61.135.169.121: seq=0 ttl=55 time=3.922 ms
64 bytes from 61.135.169.121: seq=1 ttl=55 time=4.291 ms

 

3-3 联盟模式网络容器空间  Joined_A Container and Joined_B Container

注意:只是网络共享,两个容器的文件系统还是隔离的

 

# docker run --name liuqi-01 -it --rm busybox:latest
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 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:1016 (1016.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # mkdir /liuqi/liuqi-01 -p
/ # ls
bin    dev    etc    home   liuqi  proc   root   sys    tmp    usr    var

# docker run --name liuqi-02 -it --rm --network container:liuqi-01 busybox:latest
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 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:1296 (1.2 KiB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU: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:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var

 

3-4 联盟模式的升级版网络容器空间  Open Container

这种网络容器名称空间模式需要先熟悉overlay隧道叠加网络模式,因时间的关系,后期我会持续更新此知识点...

 

 

posted on 2018-09-16 22:49  惟净师兄  阅读(315)  评论(0编辑  收藏  举报

导航