社区电脑网络 → 浏览:帖子主题
* 帖子主题:Docker 网络
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:2826
发帖:230
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第 1 楼 ] 354 回复
1.docker网络原理

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

ip a show docker0


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就创建了在主机和所有容器之间一个虚拟共享网络。

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 提交 。

②通过启动参数管理

容器
2024-07-18 16:37:18 IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:2826
发帖:230
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第 2 楼 ] 357 回复
# 查看使用端口情况
netstat -pant |grep 1900
2024-07-23 15:19:45 IP:已设置保密
分页: 1, 共 1 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容