GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载

--------------------------------------------------------------------------------------

Blog:    http://blog.csdn.net/chinagissoft

QQ群:16403743

宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案

转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

--------------------------------------------------------------------------------------


Docker网络

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第1张图片

Docker的网络一般是由在Host主机上的一个veth{id}的虚拟网卡和一个container里面的eth0一一映射
,我们可以看到,在宿主机创建了一个默认Docker0的网桥,该网桥负责把数据流在不同的veth间转发,实现网络的IO。该网桥Bridge(docker0)使用RFC1918私有网络,负责为每一个容器分配IP。

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第2张图片


Docker的网络模式

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第3张图片

Docker的网络模式包括四种方式:

理解四种网络模式可以类比于我们经常使用的VMWare WorkStation的不同的网络设置。

桥接模式:相当于在整个宿主OS里面,又创建了一个Docker网桥,整个网桥有一个独立的IP段,那么桥接模式的不同容器的网络就是该网桥所处的网络。

如下所示:docker0网桥为172.17.0.1,那么启动的容器实例就是172.17.0.2.....


root@controller:~# ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:17:fb:75:74
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU: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:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:0c:29:8a:ff:d8
          inet addr:192.168.12.107  Bcast:192.168.12.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8a:ffd8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:853 errors:0 dropped:0 overruns:0 frame:0
          TX packets:390 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:85058 (85.0 KB)  TX bytes:62727 (62.7 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2368 (2.3 KB)  TX bytes:2368 (2.3 KB)
GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第4张图片


主机模式:其实就是所谓的容器网络跟宿主OS的网络是一致的,在执行该操作,添加命令参数:--net host

host表示使用主机的网络栈,那么host主机不会创建veth虚拟网卡映射.

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第5张图片


一般情况下,我们通过访问宿主机IP+端口的方式来访问主机模式下容器对象。

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第6张图片


当然,如果考虑安全的需要,我们可以进行端口映射。

•Docker通过采用端口映射的方式,允许把内部Container的服务端口暴露出来
•使用-p参数可以指定需要暴露的container的内部端口,在不指定特定的Host的对应端口的情况下,docker会自动分配(49000-49900)在一个Host的端口与其映射
•使用-P参数,表示暴露所有在image中通过EXPOSE指定的端口
GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第7张图片


容器模式 :及通过一个容器网络充当网桥的角色,其他容器网络,与该容器处于同一个网络中。

•container:{name|id},使用另外一个container的网络栈

独立模式:及宿主机内的所有容器网络都是隔离的,我们可以通过none参数,表示关闭container的网络连接


存储挂载

一般情况下,通过添加-v参数,可以将Host上的一个目录绑定到container中,运行container对其进行读写

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第8张图片

容器间通信

通过Link参数,把container的端口信息暴露到另一个container中,实现C2C的通信

GIS+=地理信息+容器技术(5)——Docker的网络设置和存储挂载_第9张图片



你可能感兴趣的:(容器,Docker)