您的位置:首页 > 运维架构 > Docker

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

2016-03-14 08:42 1016 查看
--------------------------------------------------------------------------------------

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

QQ群:16403743

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

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

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

Docker网络



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



Docker的网络模式



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)



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

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



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



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

•Docker通过采用端口映射的方式,允许把内部Container的服务端口暴露出来
•使用-p参数可以指定需要暴露的container的内部端口,在不指定特定的Host的对应端口的情况下,docker会自动分配(49000-49900)在一个Host的端口与其映射
•使用-P参数,表示暴露所有在image中通过EXPOSE指定的端口







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

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

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

存储挂载

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



容器间通信

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息