docker_practice/advanced_network
Kang Huaishuai ea00e0d82a
Update format
Signed-off-by: Kang Huaishuai <khs1994@khs1994.com>
2021-03-07 15:29:05 +08:00
..
_images Update figure location 2017-05-24 11:37:58 +08:00
README.md [vuepress] Fixed https://github.com/Mister-Hope/vuepress-theme-hope/issues/406 2020-10-16 12:13:14 +08:00
access_control.md Update format 2021-03-07 15:29:05 +08:00
bridge.md Update title style 2019-11-06 14:58:03 +08:00
config_file.md Update title style 2019-11-06 14:58:03 +08:00
docker0.md Update title style 2019-11-06 14:58:03 +08:00
example.md Update format 2021-03-07 15:29:05 +08:00
how_connect.md rewrite the advanced network chapter 2014-09-18 17:38:20 +08:00
port_mapping.md Update title style 2019-11-06 14:58:03 +08:00
ptp.md Update title style 2019-11-06 14:58:03 +08:00
quick_guide.md Update title style 2019-11-06 14:58:03 +08:00

README.md

高级网络配置

注意:本章属于 Docker 高级配置,如果您是初学者,您可以暂时跳过本章节,直接学习 Docker Compose 一节。

本章将介绍 Docker 的一些高级网络配置和选项。

当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。

同时Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0 接口。比如典型的 172.17.42.1,掩码为 255.255.0.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。

当创建一个 Docker 容器的时候,同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头(例如 vethAQI2QT。通过这种方式主机可以跟容器通信容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。

Docker 网络

接下来的部分将介绍在一些场景中Docker 所有的网络定制配置。以及通过 Linux 命令来调整、补充、甚至替换 Docker 默认的网络配置。