docker网络模型之---Host模式

9330阅读 0评论2016-06-05 frankzfz
分类:云计算

  使用docker网络的host模式时,使用下面的命令启动一个容器,当容器启动后,在容器中可以看到宿主机中所有的网络设备,这种方式下在Container中可以操作宿主机的网络资源。
 如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。这样网络的隔离性基本就丧失了,由于这是Container共享Host的网络和端资源,也就是有些端口宿主机可能已经占用,Container无法再使用。

[root@10-10-63-106 ~]# docker run -i -t --net=host centos6.3-base-v2 /bin/bash

[root@10-10-63-106 /]#

[root@10-10-63-106 /]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 52:54:00:D0:A6:2A 

          inet addr:10.10.63.106  Bcast:10.10.255.255  Mask:255.255.0.0

          inet6 addr: fe80::5054:ff:fed0:a62a/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:10556531 errors:0 dropped:0 overruns:0 frame:0

          TX packets:11149744 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2811097616 (2.6 GiB)  TX bytes:2155625978 (2.0 GiB)

 Docker ContainerHost模式,由于使用host的网络资源,不需要额外的网桥和建立虚拟的网卡资源。相当于父进程在创建子进程的过程中,由于没有传入CLONE_NEWNET所以我们ContainerHost共享同一个网络环境。采用这种方式的Container如果Hosteth接口配置的是公网的IP地址,则Container可以直接使用HostIP地址提供服务,无需进行NAT地址的转换,提高了效率。这时的Container不再拥有独立的端口号资源,而是需要和Host进行竞争端口资源。
 


上一篇:配置Docker的网络模型—none
下一篇:docker网络模型之---Container模式