Docker网络配置分析和总结.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Docker网络配置

摘要

当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口。它会从RFC1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。例如当我启动docker几分钟后它选择了/16-一个16位的子网掩码为主机和它的容器提供了65,534个ip地址。

但docker0并不是正常的网络接口。它只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥。它可以使容器与主机相互通信。每次Docker创建一个容器,它就会创建一对对等接口(peerinterface),类似于一个管子的两端--在这边可以收到另一边发送的数据包。Docker会将对等接口中的一个做为 eth0接口连接到容器上,并使用类似于vethAQI2QT这样的惟一名称来持有另一个,该名称取决于主机的命名空间。通过将所有veth*接口绑定到docker0桥接网卡上,Docker在主机和所有Docker容器间创建一个共享的虚拟子网。

本文其他部分将会讲解使用Docker选项的所有方式,并且-在高级模式下-使用纯

linux网线配置命令来调整,补充,或完全替代Docker的默认网络配置。

Docker选项快速指南

这里有一份关于Docker网络配置的命令行选项列表,省去您查找相关资料的麻烦。一些网络配置的命令行选项只能在服务器启动时提供给Docker服务器。并且一旦启动

起来就无法改变。

一些网络配置命令选项只能在启动时提供给Docker服务器,并且在运行中不能改变:

-bBRIDGE或--bridge=BRIDGE 建立自己的网桥

--bip=CIDR 定制docker0

-HSOCKET...或--host=SOCKET... 它看起来像是在设置容器的网络,但实际却恰恰相反:它告诉Docker服务器要接收命令的通道,例如“runcontainer和stopcontainer。

--icc=true|false 容器间通信

--ip=IP_ADDRESS绑定容器端口

--ip-forward=true|false 容器间通信

--iptables=true|false 容器间通信

--mtu=BYTES—see 定制docker0

有两个网络配置选项可以在启动时或调用dockerrun时设置。当在启动时设置它会成为dockerrun的默认值:

--dns=IP_ADDRESS... 配置DNS

--dns-search=DOMAIN... 配置DNS

最后,一些网络配置选项只能在调用dockerrun时指出,因为它们要为每个容器做特定的配置:

-hHOSTNAME或--hostname=HOSTNAME 配置DNS和Docker与容器连接原理

--link=CONTAINER_NAME:ALIAS 配置DNS和容器间通信

--net=bridge|none|container:NAME_or_ID|host Docker与容器连接原理

-pSPEC或--publish=SPEC 绑定容器端口

-P或--publish-all=true|false 绑定容器端口

接下来的部分会对以上话题从易到难做出逐一解答。

配置DNS(为每一个容器进行主机名和DNS配置)

怎样为Docker提供的每一个容器进行主机名和DNS配置,而不必建立自定义镜像并将主机名写到里面?它的诀窍是覆盖三个至关重要的在/etc下的容器内的虚拟文件,那几个文件可以写入新的信息。你可以在容器内部运行mount看到这个:

#mount

/dev/disk/by-uuid/1fec...ebdfon/etc/hostnametypeext4

/dev/disk/by-uuid/1fec...ebdfon/etc/hoststypeext4tmpfson/etc/resolv.conftypetmpfs

在容器内部运行(查看容器的主机名配置和DNS配置):

#cat/etc/resolv.conf#cat/etc/hosts

#cat/etc/hostname

这样的配置允许Docker去做聪明的事情,类似于当主机接收到新的DHCP配置之后,保持resolv.conf的数据到所有的容器中。Docker怎样维护在容器内的这些文件从Docker的一个版本到下一个版本的具体细节,你应该抛开这些单独的文件本身并且使用下面的Docker选项代替。

有四种不同的选项会影响容器守护进程的服务名称(容器的主机名称)。

1、-hHO

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档