docker高階與實戰 5 docker網路

2021-09-19 18:13:30 字數 950 閱讀 6780

docker原生網路不足,第三方sdn解決方案來滿足各種需求.

docker收購socketplane後,libnetwork專案開始發力.

libnetwork定義了新的容器網路模型cnm,標準api為容器配置網路,底層適配各種驅動.

cnm包括三個概念:

沙盒:linux平台上基於linux network namespace.在乙個隔離的環境中儲存網路配置.沙盒可以包含多個網路的endpoint.

endpoint:將沙盒接入網路,乙個endpiont只能屬於乙個沙盒,乙個沙盒可以通過多個endpiont接入不同的網路.當前使用的是veth pair介面

網路:endpoint集合,實現vlan,bridge等網路功能

目前已經實現的5種網路驅動:bridge,host,null,remote,overlay

libnetwork在linux下基於kernel的network namespace實現.

實現5種網路功能:

none:不配置網路

container:共享同一network namespace的配置,所以ip等資訊都一樣.

host:共享主機上root network namespace,是不安全的.

bridge(預設):nat模式.通訊通過主機的iptables控制.

overlay:docker原生跨主機多子網模型,複雜,底層使用kv儲存系統進行訊息同步,核心是linux bridge與vxlan隧道實現跨主機.

vxlan id從256-1000

網路效率並不高

下面是我繪製的bridge與overlay的網路圖

docker 啟動docker與儲存docker

這是我的啟動命令 sudo docker run it d name ctf p 8087 80 ctf new sudo docker ps sudo docker exec it id bin bash詳解如下 usage docker run options image command arg...

Docker入門與應用實戰5

docker入門與應用實戰5 dockerfile格式 dockerfile 從上而下 逐from centos latest 行run yum install gcc y 執copy run.sh usr bin 行expose 80 cmd run.sh dockerfile指令 指令 描述fr...

Docker詳解與實戰

依賴安裝方式 wget 2 安裝docker rpm ivh docker ce 17.12.0.ce 1.el7.centos.x86 64.rpm 3 啟動docker systemctl start docker 4 開機啟動docker systemctl enable docker 映象是...