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.....
主机模式:其实就是所谓的容器网络跟宿主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的通信
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的通信
相关文章推荐
- centos6.5上安装docker
- docker容器的网络信息查看
- 在windows下的安装Docker的教程
- 8个你可能不知道的Docker知识
- 在Docker中自动化部署Ruby on Rails的教程
- 搭建基于Docker的PHP开发环境的详细教程
- 利用OpenVSwitch在多台主机上部署Docker的教程
- ubuntu14.04+docker的安装及使用
- Docker 清理命令集锦
- 再Docker中架设完整的WordPress站点全攻略
- 基于 Docker 开发 NodeJS 应用
- 使用Docker来加速构建Android应用的基本部署思路解析
- 在Docker上部署Python的Flask框架的教程
- 在Docker上开始部署Python应用的教程
- 详解在Python和IPython中使用Docker
- 使用IPython来操作Docker容器的入门指引
- OSX下brew安装docker(boot2docker)
- docker 设置TLS远程访问
- mesos + marathon + docker部署
- docker-registry server部署