docker_practice/advanced_network/README.md

16 lines
1.5 KiB
Markdown
Raw Normal View History

# 高级网络配置
2017-12-20 15:44:09 +00:00
2017-12-20 15:49:49 +00:00
>注意:本章属于 `Docker` 高级配置,如果您是初学者,您可以暂时跳过本章节,直接学习 [Docker Compose](../compose) 一节。
2017-12-20 15:44:09 +00:00
本章将介绍 Docker 的一些高级网络配置和选项。
2014-09-17 06:52:55 +00:00
当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
2014-09-05 07:50:54 +00:00
2019-01-06 02:15:13 +00:00
同时Docker 随机分配一个本地未占用的私有网段(在 [RFC1918](https://tools.ietf.org/html/rfc1918) 中定义)中的一个地址给 `docker0` 接口。比如典型的 `172.17.42.1`,掩码为 `255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。
2014-09-05 07:50:54 +00:00
当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`。通过这种方式主机可以跟容器通信容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。
2017-05-24 03:37:58 +00:00
![Docker 网络](_images/network.png)
2014-09-05 07:50:54 +00:00
接下来的部分将介绍在一些场景中Docker 所有的网络定制配置。以及通过 Linux 命令来调整、补充、甚至替换 Docker 默认的网络配置。