ITKeyword,专注技术干货聚合推荐

注册 | 登录

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

chinagissoft 分享于

2020腾讯云10周年活动,优惠非常大!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1040

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

推荐:为Docker容器设置固定IP实现网络联通(3)——如何节省IP资源防止主机网络广播风暴

题记 前面我们提到使用两种方式实现Docker容器实例与主机网络的固定IP设置,也实现了外部网络与Docker容器的相互访问,而且这种方式支持跨主机容器实例的网络连

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

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

推荐:Docker实现跨主机容器实例网络通信(1)——利用LinuxBridge构建多主机Docker网络

题记 前面我们已经提到了如果我们构建docker集群,肯定会出现跨主机docker实例网络连接的需求,而且为了节省主机网络的IP资源,我们尽量使用docker0自己的网络连

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的通信




推荐:Docker实现跨主机容器实例网络通信(2)——利用OpenVSwitch构建多主机Docker网络

题记 前面我们已经针对Docker容器进行了简单介绍,相信感兴趣的朋友已经能在相关帮助下部署一个docker环境感受了容器带给我们的另一种技术进步。 当然,如果你慢

-------------------------------------------------------------------------------------- Blog:    http://blog.csdn.net/chinagissoft QQ群:16403743 宗旨:专注于"GIS+"前沿技术的研究与

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。