libnetwork 提供一個原生 go 實作的容器連接配接,是容器的網絡。libnetwork 的目标是定義一個健壯的容器網絡模型(container network model),提供一個一緻的程式設計接口和應用程式的網絡抽象。
libnetwork一開始的代碼隻是 libcontainer 和 docker engine 中網絡部分代碼的合并,docker 官方的願景是希望 libnetwork 能像 libcontainer 一樣,成為一個多平台的容器網絡基礎包。
受之前的一個 github issue 啟 發,libnetwork 引入了容器網絡模型(cnm)的概念,cnm 定義了三個新的術語,分别是網絡沙箱、endpoint、network。網絡沙箱 指的是在每一個容器中,将會有一個隔離的用于網絡配置的環境。endpoint 是一個網絡接口,可用于某一網絡上的交流。network 是一個唯一的且可識别的 endpoint組。
接下來,docker 公司将會把 libnetwork 內建到 docker engine,并在 docker cli 中使用新的網絡指令。具體的項目路線圖讀者可以參考 github。
注意:libnetwork 項目正在大力開發中,還不适合日常使用!
使用示例: