成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解五種Docker容器的網絡模式

網絡 通信技術
Docker 的網絡系統為管理容器如何與其他容器、相鄰容器和 Docker 主機通信提供了多種方式。同一網絡中的容器可以使用其名稱或 IP 地址連接。

Docker 網絡設置了容器如何與其他容器和外部服務通信。為了獲得網絡訪問,容器需要是 Docker 網絡的一部分。容器可以通信的方式取決于它的網絡連接。Docker 提供了五種標準網絡模式來執行核心網絡功能:Bridge(橋接)、Host(主機)、Overlay(重疊)、IPvLAN、Macvlan。

1、橋接網絡

橋接網絡在主機機器和容器之間形成一個虛擬橋接。該網絡上的容器可以相互通信,但與未連接到該網絡的容器隔離。

圖片圖片

每個容器都會獲得一個獨一無二的 IP 地址。通過與主機的橋接連接,這些容器還可以相互交互,與本地網絡(LAN)和 Internet 互聯。然而,它們不會以物理設備的形式出現在 LAN 上。

2、主機網絡(Host Network)

使用主機網絡模式的容器使用與主機機器相同的網絡設置,而不會被隔離。它們沒有單獨的 IP 地址。相反,它們使用的任何端口都直接鏈接到主機網絡。例如,如果容器進程使用端口 8080,則可以通過 192.168.1.101:8080(即主機的 IP 地址和端口號)訪問它。

圖片圖片

由于應用程序容器使用端口 8080,因此不需要端口映射,因為在這種情況下,容器使用主機端口。我們的數據庫使用端口 5432,因此可以通過主機的 IP 地址和 5432 端口進行訪問。

3、重疊網絡(Overlay Network)

重疊網絡是跨越多個 Docker 主機的網絡。它們可以讓這些主機上的容器相互通信,而無需操作系統管理路由。

重疊網絡用于 Docker Swarm 集群。但是,如果有兩個單獨運行的 Docker 引擎,并且需要直接連接它們的容器,也可以這樣使用它們。

圖片圖片

上圖進行了簡化。在真實場景中,正如容器一樣,主機也會從重疊網絡獲取虛擬 IP 地址,而且它們的范圍是相同的。

4、IPvLAN 網絡

IPvLAN 是一種高級模式,可提供對容器的 IPv4 和 IPv6 地址進行詳細控制的能力,它還可以處理第 2 層和第 3 層 VLAN 標記和路由。

如果你需要將容器服務連接到已有物理網絡,此模式會很有用。IPvLAN 網絡具有自己的接口,其性能可能比基于橋接網絡的網絡更好。

圖片圖片

上圖顯示了 IPvLAN 設置中的所有內容,包括容器,都有自己的 IP 地址,并且是網絡的一部分。

5、Macvlan 網絡

Macvlan 是一種更高級的選項,讓容器能像網絡上的物理設備一樣運行。它通過為每個容器分配自己的 MAC 地址來實現這一點。

對于此類型的網絡,你需要將主機的一個物理網絡接口分配給虛擬網絡。此外,更廣泛的網絡還應設置為處理來自具有大量容器的 Docker 主機的許多 MAC 地址。

6、使用哪種網絡類型

橋接網絡適用于大多數情況。這些網絡上的容器可以使用 IP 地址和 DNS 名稱相互通信。它們還可以連接到互聯網和本地網絡。

主機網絡在需要直接使用主機的網絡接口并且不需要分離容器網絡時很有用。此設置使容器化的應用程序像主機網絡的一部分一樣運行。

重疊網絡在容器位于不同 Docker 主機上時需要直接通信時是必需的。它們非常適合為了提高可靠性創建分布式應用。

在容器需要像網絡上的物理設備一樣運行時,Macvlan 網絡很有用,例如監控網絡流量。IPvLAN 網絡適用于高級需求,例如對容器 IP 地址、標記和路由的特定控制。

7、創建網絡

使用 docker network create 命令創建一個新網絡。通過設置 -d 標志來指定要使用的驅動程序,例如橋接或主機。如果省略標志,將創建一個橋接網絡。

在第一個終端窗口中運行以下命令:

docker network create test-network -d bridge
# 輸出是50ed05634f6a3312e56700ef683ca39df44bfc826e2e4da9179c2593c79910f9

創建的網絡 ID 將顯示在終端中。目前,新網絡還無法使用,因為還沒有連接任何容器。

但是,你可以通過在 docker run 命令中設置 --network 標志將新容器連接到網絡。在第二個終端窗口中運行以下命令:

docker run -it --rm --name container1 --network test-network busybox:latest

接下來,在第三個終端窗口中啟動另一個 Ubuntu 容器,這次不使用 --network 標志:

docker run -it --rm --name container2 busybox:latest

現在,使用它們的名稱在兩個容器之間進行通信:

# 在container1中
/ # ping container2
ping: bad address 'container2'

容器尚未加入到同一個網絡中,因此它們無法直接相互通信。

使用第一個終端窗口將 container2 連接到網絡中:

docker network connect test-network container2

容器現在共享同一個網絡,這使它們能夠相互發現:

# 在container1中
/ # ping container2
PING container2 (172.22.0.7): 56 data bytes
64 bytes from 172.22.0.7: seq=0 ttl=64 time=2.205 ms

Docker 可以在不重新啟動容器的情況下自由管理網絡連接。了解了如何在創建容器后連接容器,也可以從它們不再需要參與的網絡中刪除容器:

docker network disconnect test-network container2

如果想刪除一個網絡,需要先斷開或停止使用該網絡的所有 Docker 容器,然后將網絡的 ID 或名稱傳遞給 network rm:

docker network rm test-network

總結

Docker 的網絡系統為管理容器如何與其他容器、相鄰容器和 Docker 主機通信提供了多種方式。同一網絡中的容器可以使用其名稱或 IP 地址連接。

責任編輯:武曉燕 來源: Java學研大本營
相關推薦

2023-09-22 11:58:49

2018-07-30 09:00:19

容器Docker鏡像

2019-10-23 05:08:55

docker網絡模式網絡協議

2019-10-22 14:06:13

Docker軟件Linux

2010-12-14 09:27:44

綠色網絡

2022-06-16 11:01:22

數據庫SQL

2010-09-01 14:56:14

2010-08-27 09:10:15

網絡隱私

2022-10-13 14:14:42

開發微服務測試

2024-01-09 09:06:13

2016-10-31 15:33:57

DockerMySQL容器管理

2013-05-23 09:45:10

虛擬化桌面虛擬化

2021-09-22 12:56:19

編程技能Golang

2012-09-05 15:45:18

Ntbackup備份

2024-06-06 08:32:52

.NET框架代碼

2022-11-15 10:01:27

2022-08-10 11:02:56

Python單例模式

2021-11-05 10:09:49

種有效的物聯網商業模式

2013-05-23 09:49:28

虛擬化桌面虛擬化

2023-12-04 16:25:58

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久999免费视频 999久久久久久久久6666 | 亚洲天堂中文字幕 | 亚洲一在线 | 精品国产欧美一区二区三区成人 | av一区二区三区 | 久久久高清 | 一本色道久久综合亚洲精品高清 | 夜操| 午夜免费网站 | 日本不卡一区二区三区在线观看 | 亚洲 欧美 另类 综合 偷拍 | 久久免费视频1 | 亚洲天堂成人在线视频 | 国产一区二区三区高清 | 亚洲免费在线 | 婷婷色国产偷v国产偷v小说 | 亚洲一区二区视频 | 不卡一区二区三区四区 | 国产亚洲区 | 成人影院免费视频 | 久久一热 | 日韩精品久久一区 | 国产欧美在线视频 | 亚洲综合色视频在线观看 | 91精品国产综合久久久久久 | 视频在线一区二区 | 中文字幕日韩欧美 | 久久精品亚洲一区二区三区浴池 | 成人九区| 成人免费一级视频 | 国产成人精品久久 | 国产成人精品免费视频大全最热 | 国产精选一区 | 久久综合久色欧美综合狠狠 | 久草免费在线视频 | 亚洲顶级毛片 | 亚洲精品黄色 | 秋霞在线一区二区 | 91免费视频| 中文字幕免费 | 国产精品一区二区av |