天天看點

docker-proxy 的原理

本篇是第七部分“網絡篇”的第五篇。在這個部分,我會為你由淺入深的介紹 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)