第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Docker 網絡 - container 模式

容器與主機、容器與容器之間是互相隔離的。同時,我們可以通過配置 docker 網絡,為容器創(chuàng)建完全獨立的網絡命名空間,或者使容器共享主機或者其他容器的網絡命名空間,以應對不同場景的需要。

這里有4 種常用的單宿主機網絡模式:

  1. bridge 模式;
  2. host 模式;
  3. container 模式;
  4. none 模式。

本節(jié)將介紹網絡模式中的 container 模式:

1. container 模式

與 host 模式類似,container 模式可以使一個容器共享另一個已存在容器的網絡,此時這兩個容器共同使用同一網卡、主機名、IP 地址,容器間通訊可直接通過本地回環(huán) lo 接口通訊。

新運行一個 busybox 的容器 b1,設定它共享已存在的容器 b0 的網絡:

docker run -d -t --network container:b0 --name b1 busybox

Tips:端口轉發(fā)設定以已存在的容器為準,出于安全和權限控制的角度,container 模式下運行的容器設定端口轉發(fā)不生效。

查看 b0,b1 的網絡配置,驗證兩者的網絡配置是否相同:

docker exec b0 ifconfig
docker exec b1 ifconfig

圖片描述

此時的網絡拓撲圖如下:

圖片描述

container 網絡拓撲

不再使用的容器記得刪除掉,釋放資源和空間

docker rm -f b0 b1

nginx 鏡像自帶的網絡命令非常少,查看網絡不方便,而 busybox 的網絡命令比較齊全,使用 container 模式,可以快速解決這個問題。

我們新運行一個名為 n0 的 nginx 容器,再將它的網絡共享給 busybox 容器 n0-net:

docker run -d -t --name n0 nginx
docker run -d -t --network container:n0 --name n0-net busybox

使用 n0-net 容器,執(zhí)行 docker exec n0-net ip a 進行網絡狀態(tài)查看自身網絡信息,也就是 nginx 的網絡信息

圖片描述

執(zhí)行如下命令,通過 localhost 訪問 n0 的 web 服務,說明通過 container 模式下,共享的網絡中的容器能夠使用 lo 訪問其他容器的服務。

docker exec n0-net telnet localhost 80
# 在交互中輸入
# GET /
#

圖片描述

不再使用的容器記得刪除掉,釋放資源和空間:

docker rm -f n0 n0-net

2. 小結

在 container 模式下的容器,會使用其他容器的網絡命名空間,其網絡隔離性會處于 bridge 橋接模式與 host 模式之間:當容器共享其他容器的網絡命名空間,則在容器之間不存在網絡隔離;而它們又與宿主機以及其他不在此共享中的容器存在網絡隔離。