From 6af4bdd1d160869376fe0528b36d14d5ed5691fb Mon Sep 17 00:00:00 2001 From: yougg Date: Thu, 6 Nov 2014 10:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- underly/network.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/underly/network.md b/underly/network.md index 30a8eee..5bc3a38 100644 --- a/underly/network.md +++ b/underly/network.md @@ -6,7 +6,7 @@ Docker 的网络实现其实就是利用了 Linux 上的网络名字空间和虚 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。 Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势之一是转发效率较高。 -Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据转发,发送接口的发送缓存中的数据包被直接复制到接收接口的接收缓存中。对于本地系统和容器内系统看来就像是一个正常的以太网卡,只是它不需要真正同外部网络设备通信,速度要很快。 +Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据转发,发送接口的发送缓存中的数据包被直接复制到接收接口的接收缓存中。对于本地系统和容器内系统看来就像是一个正常的以太网卡,只是它不需要真正同外部网络设备通信,速度要快很多。 Docker 容器网络就利用了这项技术。它在本地主机和容器内分别创建一个虚拟接口,并让它们彼此连通(这样的一对接口叫做 `veth pair`)。 @@ -64,6 +64,6 @@ $ sudo ip netns exec $pid ip route add default via 172.17.42.1 ``` 以上,就是 Docker 配置网络的具体过程。 -当容器结束后,Docker 会清空容器,容器内的 eth0 会随网络命名空间一起被摧毁,A 接口也被自动从 `docker0` 卸载。 +当容器结束后,Docker 会清空容器,容器内的 eth0 会随网络命名空间一起被清除,A 接口也被自动从 `docker0` 卸载。 此外,用户可以使用 `ip netns exec` 命令来在指定网络名字空间中进行配置,从而配置容器内的网络。