日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【Docker】容器的几种网络模式

發(fā)布時間:2023/11/28 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Docker】容器的几种网络模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當(dāng)你使用Docker時,你會發(fā)現(xiàn)需要了解很多關(guān)于網(wǎng)絡(luò)的知識。Docker作為目前最火的輕量級容器引擎,因此,我們有必要深入了解Docker的網(wǎng)絡(luò)知識,以滿足更高的網(wǎng)絡(luò)需求。本文介紹了Docker的4種網(wǎng)絡(luò)模式。

1、首先我們先簡單描述一下容器的這幾種網(wǎng)絡(luò)模式:

Bridge: 此模式會為每一個容器分配、設(shè)置IP等,并將容器連接到一個docker0虛擬網(wǎng)橋,通過docker0網(wǎng)橋以及Iptables nat表配置與宿主機(jī)通信。
none: 該模式關(guān)閉了容器的網(wǎng)絡(luò)功能。
Host :容器將不會虛擬出自己的網(wǎng)卡,配置自己的IP等,而是使用宿主機(jī)的IP和端口。
Container: 創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍。

2、當(dāng)我們安裝好Docker引擎時默認(rèn)會自動創(chuàng)建三個網(wǎng)絡(luò):Bridge;none;Host

3、我們在使用docker run創(chuàng)建Docker容器時,可以用 --net 參數(shù)指定容器的網(wǎng)絡(luò)模式(如果不指定的話默認(rèn)是Bridge模式)

Docker可以指定以下4種網(wǎng)絡(luò)模式:

host模式:使用 --net host 指定。

none模式:使用 --net none 指定。

bridge模式:使用 --net bridge 指定,默認(rèn)。

container模式:使用 --net container:NAME_or_ID 指定。

4、下面分別介紹一下Docker的各個網(wǎng)絡(luò)模式。

一、none模式

   該模式將容器放置在它自己的網(wǎng)絡(luò)棧中,但是并不進(jìn)行任何配置。一旦 Docker 容器 采用了none 網(wǎng)絡(luò)模式,那么容器內(nèi)部就只能使用 loopback 網(wǎng)絡(luò)設(shè)備,不會再有其他的網(wǎng)絡(luò)資源。實際上,該模式關(guān)閉了容器的網(wǎng)絡(luò)功能。


二、Host模式

    相當(dāng)于Vmware中的橋接模式,與宿主機(jī)在同一個網(wǎng)絡(luò)中,但沒有獨立IP地址。眾所周知,Docker使用了Linux的Namespaces技術(shù)來進(jìn)行資源隔離,如PID Namespace隔離進(jìn)程,Mount Namespace隔離文件系統(tǒng),NetworkNamespace隔離網(wǎng)絡(luò)等。一個Network Namespace提供了一份獨立的網(wǎng)絡(luò)環(huán)境,包括網(wǎng)卡、路由、Iptable規(guī)則等都與其他的Network Namespace隔離。一個Docker容器一般會分配一個獨立的Network Namespace。但如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機(jī)共用一個Network Namespace。容器將不會虛擬出自己的網(wǎng)卡,配置自己的IP等,而是使用宿主機(jī)的IP和端口。


二、Container模式

    這個模式指定新創(chuàng)建的容器和已經(jīng)存在的一個容器共享一個Network Namespace,而不是和宿主機(jī)共享。新創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍等。同樣,兩個容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進(jìn)程列表等還是隔離的。兩個容器的進(jìn)程可以通過lo網(wǎng)卡設(shè)備通信。

三、Bridge模式

    相當(dāng)于Vmware中的Nat模式,容器使用獨立network Namespace,并連接到docker0虛擬網(wǎng)卡(Docker進(jìn)程首次啟動時會在當(dāng)前節(jié)點上創(chuàng)建一個名為docker0的橋設(shè)備,并默認(rèn)配置其使用172.17.0.0/16網(wǎng)絡(luò),改網(wǎng)絡(luò)是Bridge模式的一種實現(xiàn),也是創(chuàng)建容器是默認(rèn)使用的網(wǎng)絡(luò)),通過docker0網(wǎng)橋以及Iptables nat表配置與宿主機(jī)通信;bridge模式是Docker默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會為每一個容器分配Network Namespace、設(shè)置IP等,并將一個主機(jī)上的Docker容器連接到一個虛擬網(wǎng)橋上。


接下來介紹一下docker0虛擬網(wǎng)橋的工作方式:

    當(dāng)Docker server啟動時,會在主機(jī)上創(chuàng)建一個名為docker0的虛擬網(wǎng)橋,此主機(jī)上啟動的Docker容器會連接到這個虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機(jī)類似,這樣主機(jī)上的所有容器就通過交換機(jī)連在了一個二層網(wǎng)絡(luò)中。接下來就要為容器分配IP了,Docker會從RFC1918所定義的私有IP網(wǎng)段中,選擇一個和宿主機(jī)不同的IP地址和子網(wǎng)分配給docker0,連接到docker0的容器就從這個子網(wǎng)中選擇一個未占用的IP使用。如一般Docker會使用172.17.0.0/16這個網(wǎng)段,并將172.17.0.1/16分配給docker0網(wǎng)橋(在主機(jī)上使用ifconfig命令是可以看到docker0的,可以認(rèn)為它是網(wǎng)橋的管理接口,在宿主機(jī)上作為一塊虛擬網(wǎng)卡使用)。單機(jī)環(huán)境下的網(wǎng)絡(luò)拓?fù)淙缦?#xff0c;主機(jī)地址為10.10.0.186/24。


Bridge 橋接模式的實現(xiàn)步驟主要如下:
1、 Docker Daemon(守護(hù)進(jìn)程) 利用 veth pair 技術(shù),在宿主機(jī)上創(chuàng)建兩個虛擬網(wǎng)絡(luò)接口設(shè)備,假設(shè)為veth0 和 veth1。而 veth pair 技術(shù)的特性可以保證無論哪一個veth 接收到網(wǎng)絡(luò)報文,都會將報文傳輸給另一方。
2、Docker Daemon 將 veth0 附加到 Docker Daemon 創(chuàng)建的 docker0 網(wǎng)橋上。保證宿主機(jī)的網(wǎng)絡(luò)報文可以發(fā)往 veth0;
3、 Docker Daemon 將 veth1 添加到 Docker 容器所屬的 namespace 下,并被改名為 eth0。如此一來,保證宿主機(jī)的網(wǎng)絡(luò)報文若發(fā)往 veth0,則立即會被 eth0 接收,實現(xiàn)宿主機(jī)到Docker 容器網(wǎng)絡(luò)的聯(lián)通性,同時,也保證 Docker 容器單獨使用 eth0,實現(xiàn)容器網(wǎng)絡(luò)環(huán)境的隔離性。
bridge 橋接模式下的 Docker 容器在使用時,并非為開發(fā)者包辦了一切。最明顯的是,該模式下 Docker 容器不具有一個公有 IP,即和宿主機(jī)的 eth0 不處于同一個網(wǎng)段。導(dǎo)致的結(jié)果是宿主機(jī)以外的世界不能直接和容器進(jìn)行通信。雖然 NAT 模式經(jīng)過中間處理實現(xiàn)了這一點,但是 NAT 模式仍然存在問題與不便,如:容器均需要在宿主機(jī)上競爭端口,容器內(nèi)部服務(wù)的訪問者需要使用服務(wù)發(fā)現(xiàn)獲知服務(wù)的外部端口等。另外 NAT 模式由于是在三層網(wǎng)絡(luò)上的實現(xiàn)手段,故肯定會影響網(wǎng)絡(luò)的傳輸效率。

總結(jié)

以上是生活随笔為你收集整理的【Docker】容器的几种网络模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。