目錄
docker有幾種網路模式
首頁 運維 Docker docker有幾種網路模式

docker有幾種網路模式

Jan 28, 2022 pm 02:30 PM
docker

在docker中,一共有四種網路模式,分別是host模式容器共享宿主機的ip和連接埠號碼、container模式共享容器ip位址和連接埠、none模式容器沒有網路卡等資訊、bridge模式容器直接可以互相通訊。

docker有幾種網路模式

本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。

docker有幾種網路模式

Docker使用Linux橋接器(參考《Linux虛擬網路技術》),在宿主機器虛擬一個Docker容器網橋(docker0),Docker啟動一個容器時會根據Docker網橋的網段指派給容器一個IP位址,稱為Container-IP,同時Docker網橋是每個容器的預設閘道。因為在同一台宿主機內的容器都連接到同一個網橋,這樣容器之間就能夠透過容器的Container-IP直接通訊。

Docker網橋是宿主機虛擬出來的,並不是真實存在的網路設備,外部網路是無法尋址到的,這也意味著外部網路無法透過直接Container-IP存取到容器。如果容器希望外部存取能夠存取到,可以透過映射容器連接埠到宿主主機(連接埠對映),即docker run建立容器時候透過-p 或-P 參數來啟用,存取容器的時候就透過[宿主機IP]: [容器連接埠]存取容器。

四類網路模式

docker有幾種網路模式

host模式

如果啟動容器的時候使用host模式,那麼這個容器將不會取得獨立的Network Namespace,而是和宿主機器共用一個Network Namespace。容器將不會虛擬出自己的網路卡,配置自己的IP等,而是使用宿主機器的IP和連接埠。但是,容器的其他方面,如檔案系統、進程清單等還是和宿主機隔離的。

使用host模式的容器可以直接使用宿主機的IP位址與外界通信,容器內部的服務端口也可以使用宿主機的端口,不需要進行NAT,host最大的優勢就是網路效能比較好,但是docker host上已經使用的連接埠就不能再用了,網路的隔離性不好。

Host模式如下圖所示:

docker有幾種網路模式

#container模式

這個模式指定新建立的容器和已經存在的一個容器共用一個Network Namespace,而不是和宿主機共用。新建立的容器不會建立自己的網路卡,配置自己的 IP,而是和一個指定的容器共用 IP、連接埠範圍等。同樣,兩個容器除了網路方面,其他的如檔案系統、進程列表等還是隔離的。兩個容器的進程可以透過 lo 網路卡設備通訊。

Container模式示意圖:

docker有幾種網路模式

none模式

使用none模式,Docker容器擁有自己的Network Namespace ,但是,並非為Docker容器進行任何網路配置。也就是說,這個Docker容器沒有網路卡、IP、路由等資訊。需要我們自己為Docker容器新增網卡、設定IP等。

這種網路模式下容器只有lo回環網絡,沒有其他網卡。 none模式可以在容器建立時透過--network=none來指定。這種類型的網路沒有辦法連網,封閉的網路能很好的保證容器的安全性。

None模式示意圖:

docker有幾種網路模式

bridge模式

當Docker進程啟動時,會在主機上創建一個名為docker0的虛擬橋,此主機上啟動的Docker容器會連接到這個虛擬網橋。虛擬網橋的工作方式和實體交換器類似,這樣主機上的所有容器就透過交換器連在了一個二層網路中。

從docker0子網路中指派一個IP給容器使用,並設定docker0的IP位址為容器的預設閘道。在主機上建立一對虛擬網卡veth pair設備,Docker將veth pair設備的一端放在新建立的容器中,並命名為eth0(容器的網卡),另一端放在主機中,以vethxxx這樣類似的名字命名,並將這個網路設備加入docker0網橋。可以透過brctl show指令查看。

bridge模式是docker的預設網路模式,不寫--net參數,就是bridge模式。使用docker run -p時,docker實際上是在iptables做了DNAT規則,實現連接埠轉送功能。可以使用iptables -t nat -vnL查看。

bridge模式如下圖所示:

docker有幾種網路模式

推薦學習:《docker影片教學

以上是docker有幾種網路模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker怎麼創建鏡像 docker怎麼創建鏡像 Apr 15, 2025 am 11:27 AM

創建 Docker 鏡像步驟:編寫包含構建指令的 Dockerfile。在終端中構建鏡像,使用 docker build 命令。標記鏡像,使用 docker tag 命令分配名稱和標籤。

docker鏡像源怎麼換國內 docker鏡像源怎麼換國內 Apr 15, 2025 am 11:30 AM

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。

docker版本怎麼看 docker版本怎麼看 Apr 15, 2025 am 11:51 AM

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

docker怎麼查看日誌 docker怎麼查看日誌 Apr 15, 2025 pm 12:24 PM

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

docker怎麼更新鏡像 docker怎麼更新鏡像 Apr 15, 2025 pm 12:03 PM

更新 Docker 鏡像的步驟如下:拉取最新鏡像標記新鏡像為特定標籤刪除舊鏡像(可選)重新啟動容器(如果需要)

docker鏡像怎麼保存 docker鏡像怎麼保存 Apr 15, 2025 am 11:54 AM

在 Docker 中保存鏡像,可以使用 docker commit 命令創建新的鏡像,包含指定容器的當前狀態,語法為:docker commit [選項] 容器ID 鏡像名稱。要保存鏡像到倉庫,可以使用 docker push 命令,語法為:docker push 鏡像名稱[:標籤]。要導入已保存的鏡像,可以使用 docker pull 命令,語法為:docker pull 鏡像名稱[:標籤]。

See all articles