Docker笔记(8):Docker网络

1.docker网络原理

在安装 Docker时,会创建一个新的网络接口docker0,docker0是一个虚拟的以太网桥,用于连接容器和本地宿主网络。通过命令查看目前 Docker宿主机上这个网络接口的信息。

ip a show docker0

img

docker0接口有符合RFC1918规范的私有IP地址,范围是172.16~172.30。接口本身的地址172.17.0.1,是这个Docker网络的网关地址,也是所有 Docker容器的网关地址。Docker会默认使用172.17.x.x作为子网地址,如果这个子网被占用了,Docker会在172.16~172.30这个范围内尝试创建子网。

Docker每创建一个容器,就会创建一对veth pair互联接口。这对接口就像管道的两端(从一端发送的数据会在另一端接收到)。这对接口中位于容器端的称为eth0接口,另一端在本地并被挂载 docker0网桥,名称以veth开头。通过这种方式,主机可以与容器通信,容器之间也可以相互通信。如此一来,Docker就创建了在主机和所有容器之间一个虚拟共享网络,如图所示。

img

Docker最初基于操作系统上的本地网络支持技术,较快提供了基本的网络支持。 随着Docker越来越多地应用在各种分布式环境,网络方面的需求越来越复杂,容器网络目前已经成为了云计算领域的关键技术。

2.网络参数配置

(1)配置容器 DNS 和主机名

Docker服务启动后会默认启用一个内嵌的DNS服务,来自动解析同一个网络中的容器主机名和地址,如果无法解析,则通过容器内的 DNS 相关配置进行解析。用户可以通过如下方式自定义容器的主机名和 DNS 配置 。

①通过配置文件管理

容器中主机名 和 DNS 配置信息可以通过三个系统配置文件来管理:

  • /etc/resolv.conf:容器启动时,会从宿主机上复制该文件,并删除其中无法连接到的 DNS 服务器 。
  • /etc/hosts:文件中默认只记录了容器自身的地址和名称。
  • /etc/hostname:文件则记录了容器的主机名 。

可以在运行中的容器里直接编辑/etc/hosts、/etc/hostname 和 /etc/resolve.conf 文件。但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来,也不会被docker commit 提交 。

②通过启动参数管理

容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值