本篇是第七部分“网络篇”的第五篇。在这个部分,我会为你由浅入深的介绍 Docker 网络相关的内容。包括 Docker 网络基础及其实现和内部原理等。上篇,我为你介绍了 Docker 如何利用 iptables 为容器提供网络。本篇,我们深入了解下之前提到的 Docker 的一个组件 docker-proxy 的工作原理。
在之前的《Docker 核心架构及拆解(中)》我已经为你介绍过 docker-proxy 的基本应用。
这里我们稍作简单的复习:dockerd 在启动时提供了一个
--userland-proxy
的参数,用于控制是否启用 userland proxy 来处理回环(loopback)流量,并且可以通过
--userland-proxy-path
参数自定义 userland proxy 二进制文件的路径。
(MoeLove) ➜ ~ dockerd --help |grep userland-proxy
--userland-proxy Use userland proxy for loopback traffic (default true)
--userland-proxy-path string Path to the userland proxy binary
默认使用的是 docker-proxy,它支持的参数如下:
(MoeLove) ➜ ~ docker-proxy -h
Usage of docker-proxy:
-container-ip string
container ip
-container-port int
container port (default -1)