偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解五種Docker容器的網(wǎng)絡(luò)模式

網(wǎng)絡(luò) 通信技術(shù)
Docker 的網(wǎng)絡(luò)系統(tǒng)為管理容器如何與其他容器、相鄰容器和 Docker 主機(jī)通信提供了多種方式。同一網(wǎng)絡(luò)中的容器可以使用其名稱(chēng)或 IP 地址連接。

Docker 網(wǎng)絡(luò)設(shè)置了容器如何與其他容器和外部服務(wù)通信。為了獲得網(wǎng)絡(luò)訪問(wèn),容器需要是 Docker 網(wǎng)絡(luò)的一部分。容器可以通信的方式取決于它的網(wǎng)絡(luò)連接。Docker 提供了五種標(biāo)準(zhǔn)網(wǎng)絡(luò)模式來(lái)執(zhí)行核心網(wǎng)絡(luò)功能:Bridge(橋接)、Host(主機(jī))、Overlay(重疊)、IPvLAN、Macvlan。

1、橋接網(wǎng)絡(luò)

橋接網(wǎng)絡(luò)在主機(jī)機(jī)器和容器之間形成一個(gè)虛擬橋接。該網(wǎng)絡(luò)上的容器可以相互通信,但與未連接到該網(wǎng)絡(luò)的容器隔離。

圖片圖片

每個(gè)容器都會(huì)獲得一個(gè)獨(dú)一無(wú)二的 IP 地址。通過(guò)與主機(jī)的橋接連接,這些容器還可以相互交互,與本地網(wǎng)絡(luò)(LAN)和 Internet 互聯(lián)。然而,它們不會(huì)以物理設(shè)備的形式出現(xiàn)在 LAN 上。

2、主機(jī)網(wǎng)絡(luò)(Host Network)

使用主機(jī)網(wǎng)絡(luò)模式的容器使用與主機(jī)機(jī)器相同的網(wǎng)絡(luò)設(shè)置,而不會(huì)被隔離。它們沒(méi)有單獨(dú)的 IP 地址。相反,它們使用的任何端口都直接鏈接到主機(jī)網(wǎng)絡(luò)。例如,如果容器進(jìn)程使用端口 8080,則可以通過(guò) 192.168.1.101:8080(即主機(jī)的 IP 地址和端口號(hào))訪問(wèn)它。

圖片圖片

由于應(yīng)用程序容器使用端口 8080,因此不需要端口映射,因?yàn)樵谶@種情況下,容器使用主機(jī)端口。我們的數(shù)據(jù)庫(kù)使用端口 5432,因此可以通過(guò)主機(jī)的 IP 地址和 5432 端口進(jìn)行訪問(wèn)。

3、重疊網(wǎng)絡(luò)(Overlay Network)

重疊網(wǎng)絡(luò)是跨越多個(gè) Docker 主機(jī)的網(wǎng)絡(luò)。它們可以讓這些主機(jī)上的容器相互通信,而無(wú)需操作系統(tǒng)管理路由。

重疊網(wǎng)絡(luò)用于 Docker Swarm 集群。但是,如果有兩個(gè)單獨(dú)運(yùn)行的 Docker 引擎,并且需要直接連接它們的容器,也可以這樣使用它們。

圖片圖片

上圖進(jìn)行了簡(jiǎn)化。在真實(shí)場(chǎng)景中,正如容器一樣,主機(jī)也會(huì)從重疊網(wǎng)絡(luò)獲取虛擬 IP 地址,而且它們的范圍是相同的。

4、IPvLAN 網(wǎng)絡(luò)

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

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

圖片圖片

上圖顯示了 IPvLAN 設(shè)置中的所有內(nèi)容,包括容器,都有自己的 IP 地址,并且是網(wǎng)絡(luò)的一部分。

5、Macvlan 網(wǎng)絡(luò)

Macvlan 是一種更高級(jí)的選項(xiàng),讓容器能像網(wǎng)絡(luò)上的物理設(shè)備一樣運(yùn)行。它通過(guò)為每個(gè)容器分配自己的 MAC 地址來(lái)實(shí)現(xiàn)這一點(diǎn)。

對(duì)于此類(lèi)型的網(wǎng)絡(luò),你需要將主機(jī)的一個(gè)物理網(wǎng)絡(luò)接口分配給虛擬網(wǎng)絡(luò)。此外,更廣泛的網(wǎng)絡(luò)還應(yīng)設(shè)置為處理來(lái)自具有大量容器的 Docker 主機(jī)的許多 MAC 地址。

6、使用哪種網(wǎng)絡(luò)類(lèi)型

橋接網(wǎng)絡(luò)適用于大多數(shù)情況。這些網(wǎng)絡(luò)上的容器可以使用 IP 地址和 DNS 名稱(chēng)相互通信。它們還可以連接到互聯(lián)網(wǎng)和本地網(wǎng)絡(luò)。

主機(jī)網(wǎng)絡(luò)在需要直接使用主機(jī)的網(wǎng)絡(luò)接口并且不需要分離容器網(wǎng)絡(luò)時(shí)很有用。此設(shè)置使容器化的應(yīng)用程序像主機(jī)網(wǎng)絡(luò)的一部分一樣運(yùn)行。

重疊網(wǎng)絡(luò)在容器位于不同 Docker 主機(jī)上時(shí)需要直接通信時(shí)是必需的。它們非常適合為了提高可靠性創(chuàng)建分布式應(yīng)用。

在容器需要像網(wǎng)絡(luò)上的物理設(shè)備一樣運(yùn)行時(shí),Macvlan 網(wǎng)絡(luò)很有用,例如監(jiān)控網(wǎng)絡(luò)流量。IPvLAN 網(wǎng)絡(luò)適用于高級(jí)需求,例如對(duì)容器 IP 地址、標(biāo)記和路由的特定控制。

7、創(chuàng)建網(wǎng)絡(luò)

使用 docker network create 命令創(chuàng)建一個(gè)新網(wǎng)絡(luò)。通過(guò)設(shè)置 -d 標(biāo)志來(lái)指定要使用的驅(qū)動(dòng)程序,例如橋接或主機(jī)。如果省略標(biāo)志,將創(chuàng)建一個(gè)橋接網(wǎng)絡(luò)。

在第一個(gè)終端窗口中運(yùn)行以下命令:

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

創(chuàng)建的網(wǎng)絡(luò) ID 將顯示在終端中。目前,新網(wǎng)絡(luò)還無(wú)法使用,因?yàn)檫€沒(méi)有連接任何容器。

但是,你可以通過(guò)在 docker run 命令中設(shè)置 --network 標(biāo)志將新容器連接到網(wǎng)絡(luò)。在第二個(gè)終端窗口中運(yùn)行以下命令:

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

接下來(lái),在第三個(gè)終端窗口中啟動(dòng)另一個(gè) Ubuntu 容器,這次不使用 --network 標(biāo)志:

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

現(xiàn)在,使用它們的名稱(chēng)在兩個(gè)容器之間進(jìn)行通信:

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

容器尚未加入到同一個(gè)網(wǎng)絡(luò)中,因此它們無(wú)法直接相互通信。

使用第一個(gè)終端窗口將 container2 連接到網(wǎng)絡(luò)中:

docker network connect test-network container2

容器現(xiàn)在共享同一個(gè)網(wǎng)絡(luò),這使它們能夠相互發(fā)現(xiàn):

# 在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 可以在不重新啟動(dòng)容器的情況下自由管理網(wǎng)絡(luò)連接。了解了如何在創(chuàng)建容器后連接容器,也可以從它們不再需要參與的網(wǎng)絡(luò)中刪除容器:

docker network disconnect test-network container2

如果想刪除一個(gè)網(wǎng)絡(luò),需要先斷開(kāi)或停止使用該網(wǎng)絡(luò)的所有 Docker 容器,然后將網(wǎng)絡(luò)的 ID 或名稱(chēng)傳遞給 network rm:

docker network rm test-network

總結(jié)

Docker 的網(wǎng)絡(luò)系統(tǒng)為管理容器如何與其他容器、相鄰容器和 Docker 主機(jī)通信提供了多種方式。同一網(wǎng)絡(luò)中的容器可以使用其名稱(chēng)或 IP 地址連接。

責(zé)任編輯:武曉燕 來(lái)源: Java學(xué)研大本營(yíng)
相關(guān)推薦

2023-09-22 11:58:49

2018-07-30 09:00:19

容器Docker鏡像

2019-10-23 05:08:55

docker網(wǎng)絡(luò)模式網(wǎng)絡(luò)協(xié)議

2019-10-22 14:06:13

Docker軟件Linux

2010-12-14 09:27:44

綠色網(wǎng)絡(luò)

2022-06-16 11:01:22

數(shù)據(jù)庫(kù)SQL

2010-09-01 14:56:14

2010-08-27 09:10:15

網(wǎng)絡(luò)隱私

2022-10-13 14:14:42

開(kāi)發(fā)微服務(wù)測(cè)試

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備份

2022-11-15 10:01:27

2024-06-06 08:32:52

.NET框架代碼

2022-08-10 11:02:56

Python單例模式

2021-11-05 10:09:49

種有效的物聯(lián)網(wǎng)商業(yè)模式

2013-05-23 09:49:28

虛擬化桌面虛擬化

2023-12-04 16:25:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)