1 / 15
文档名称:

Docker网络配置.doc

格式:doc   大小:113KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Docker网络配置.doc

上传人:分享精品 2017/11/24 文件大小:113 KB

下载得到文件列表

Docker网络配置.doc

文档介绍

文档介绍:Docker网络配置
摘要
当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口。它会从RFC 1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。-一个16位的子网掩码为主机和它的容器提供了65,534个ip地址。
但docker0并不是正常的网络接口。它只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥。它可以使容器与主机相互通信。每次Docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端--在这边可以收到另一边发送的数据包。Docker会将对等接口中的一个做为eth0容器内部的网络直接为eth0
接口连接到容器上,并使用类似于vethAQI2QT容器的另外一端,即docker端,通过宿主机的ifconfig命令可以查看到这些名称。
这样的惟一名称来持有另一个,该名称取决于主机的命名空间。通过将所有veth*接口绑定到docker0桥接网卡上,Docker在主机和所有Docker容器间创建一个共享的虚拟子网。
本文其他部分将会讲解使用Docker选项的所有方式,并且-在高级模式下-使用纯linux网线配置命令来调整,补充,或完全替代Docker的默认网络配置。
Docker选项快速指南
这里有一份关于Docker网络配置的命令行选项列表,省去您查找相关资料的麻烦。
一些网络配置的命令行选项只能在服务器启动时提供给Docker服务器。并且一旦启动起来就无法改变。
一些网络配置命令选项只能在启动时提供给Docker服务器,并且在运行中不能改变:
-b BRIDGE或--bridge=BRIDGE 建立自己的网桥
--bip=CIDR 定制docker0
-H SOCKET...或--host=SOCKET... 它看起来像是在设置容器的网络,但实际却恰恰相反:它告诉Docker服务器要接收命令的通道,例如“run container"和"stop container"。
--icc=true|false 容器间通信
--ip=IP_ADDRESS 绑定容器端口
--ip-forward=true|false 容器间通信
--iptables=true|false 容器间通信
--mtu=BYTES— see 定制docker0
有两个网络配置选项可以在启动时或调用docker run时设置。当在启动时设置它会成为docker run的默认值:
--dns=IP_ADDRESS... 配置DNS
--dns-search=DOMAIN... 配置DNS
最后,一些网络配置选项只能在调用docker run时指出,因为它们要为每个容器做特定的配置:
-h HOSTNAME或--hostname=HOSTNAME 配置DNS和Docker与容器连接原理
--link=CONTAINER_NAME:ALIAS 配置DNS和容器间通信
--net=bridge|none|container:NAME_or_ID|host Docker与容器连接原理
-p SPEC或--publish=SPEC 绑定容器端口
-P或--publish-all=true|false 绑定容器端口
接下来的部分会对以上话题从易到难做出逐一解答。
配置DNS(为每一个容器进行主机名和DNS配置)
怎样为Docker提供的每一个容器进行主机名和DNS配置,而不必建立自定义镜像并将主机名写到里面?它的诀窍是覆盖三个至关重要的在/etc下的容器内的虚拟文件,那几个文件可以写入新的信息。你可以在容器内部运行mount看到这个:
#mount
/dev/disk/by-uuid/1fec...ebdf on /etc/hostname type ext4
/dev/disk/by-uuid/1fec...ebdf on /etc/hosts type ext4
tmpfs on /etc/ type tmpfs
在容器内部运行(查看容器的主机名配置和DNS配置):
#cat /etc/
#cat /etc/hosts
#cat /etc/hostname
这样的配置允许Docker去做聪明的事情,类似于当主机接收到新的DHCP配置之后,。Docker怎样维护在容器内的这些文件从Docker的一个版本到下一个版本的具体细节,你应该抛开这些单独的文件本身并且使用下面的Docker选项代替。
有四种不同的选项会影响