帶你細(xì)致學(xué)習(xí)Docker網(wǎng)絡(luò) - bridge模式
最近有幾個(gè)已經(jīng)就業(yè)的小伙伴,過(guò)來(lái)問(wèn)千鋒健哥關(guān)于Docker網(wǎng)絡(luò)配置的問(wèn)題,他們?cè)趯?shí)際開(kāi)發(fā)中還是有些疑問(wèn)。關(guān)于Docker網(wǎng)絡(luò)這一塊的內(nèi)容確實(shí)很多,為了讓大家搞清楚這個(gè)問(wèn)題,健哥準(zhǔn)備搞幾篇系列文章,來(lái)為各位小伙伴解惑。這次健哥帶來(lái)的是Docker網(wǎng)絡(luò)的Bridge模式,接下來(lái)我們直接上干貨!!!
Docker容器和服務(wù)之所以強(qiáng)大的原因之一,是可以將它們連接在一起,或者將它們連接到非Docker的工作負(fù)載上。而Docker容器和服務(wù)甚至都不需要知道它們部署在Docker容器上。無(wú)論Docker主機(jī)是運(yùn)行在Linux、window上,或者兩者混合運(yùn)行,都可以使用Docker以與平臺(tái)無(wú)關(guān)的方式來(lái)管理它們。
而這一切的基礎(chǔ),都是緣于Docker網(wǎng)絡(luò)提供的強(qiáng)大功能和良好設(shè)計(jì)!
一. 操作環(huán)境
我們先說(shuō)一下運(yùn)行所需要的環(huán)境,如下:
centos 7.x版本
docker版本:Docker version 20.10.18, build b40c2f6
xshell 7
·
二. Docker network 常用命令
我們先來(lái)看看Docket中提供的常用network命令。
1.
查看docker network幫助手冊(cè)
2.
列出docker網(wǎng)絡(luò)
通過(guò)docker network create創(chuàng)建一個(gè)網(wǎng)絡(luò)
查看qf網(wǎng)絡(luò)的詳細(xì)信息
三. Docker網(wǎng)絡(luò)的作用
在開(kāi)始學(xué)習(xí)Docker網(wǎng)絡(luò)用法之前,我們?cè)賮?lái)了解一下Docker網(wǎng)絡(luò)的作用,主要作用如下:
1. Docker網(wǎng)絡(luò)可以負(fù)責(zé)容器間的相互連接和通信,以及端口映射; 2. 當(dāng)容器`ip`地址發(fā)生更改時(shí),可以通過(guò)服務(wù)名稱進(jìn)行網(wǎng)絡(luò)通信,不會(huì)因?yàn)閌ip`的更改導(dǎo)致服務(wù)不可用。
四. 網(wǎng)絡(luò)模式
Docker的網(wǎng)絡(luò)有以下幾種網(wǎng)絡(luò)模式。
網(wǎng)絡(luò)模式說(shuō)明
bridge, 虛擬網(wǎng)橋, 默認(rèn)模式每一個(gè)容器有獨(dú)立的ip, 并將容器連接到docker0網(wǎng)橋上
host使用宿主機(jī)的ip和端口號(hào), 容器不會(huì)虛擬出自己的網(wǎng)卡、配置ip
none有獨(dú)立的network namespace,但是并未對(duì)其進(jìn)行任何網(wǎng)絡(luò)設(shè)置
container和一個(gè)指定的容器共享ip和端口號(hào), 不會(huì)虛擬出網(wǎng)卡、配置ip等操作.
1. bridge模式
網(wǎng)橋模式,是docker默認(rèn)的網(wǎng)絡(luò)模式。
1.1 案例說(shuō)明
我們可以創(chuàng)建兩臺(tái)centos容器,分別進(jìn)入這兩臺(tái)容器中查看網(wǎng)絡(luò)情況,查看ip是否相同。
進(jìn)入容器,查看各自的ip地址。
結(jié)論:通過(guò)觀察可以發(fā)現(xiàn),這兩個(gè)centos容器的ip地址并不相同。docker服務(wù)默認(rèn)會(huì)創(chuàng)建一個(gè)docker0網(wǎng)橋,它在內(nèi)核層連通了其它物理或者虛擬網(wǎng)卡,它會(huì)將所有容器和本機(jī)放到同一個(gè)物理網(wǎng)絡(luò)。docker默認(rèn)指定了docker0接口的ip地址和子網(wǎng)掩碼,讓主機(jī)和容器之間通過(guò)互相通信。
1.2 在宿主機(jī)中查看docker0網(wǎng)橋
docker使用linux進(jìn)行橋接,在宿主機(jī)上虛擬一個(gè)docker網(wǎng)橋「docker0」。docker啟動(dòng)一個(gè)容器會(huì)根據(jù)docker網(wǎng)橋的網(wǎng)段,分配給容器一個(gè)ip地址,稱為為container-ip。
docker網(wǎng)橋是每個(gè)容器的默認(rèn)網(wǎng)關(guān),同一臺(tái)宿主機(jī)內(nèi)的容器都會(huì)接入一個(gè)網(wǎng)橋,這樣容器之間就能通過(guò)container-ip進(jìn)行通信了。
當(dāng)創(chuàng)建容器的時(shí)候,如果沒(méi)有指定網(wǎng)絡(luò)模式,默認(rèn)會(huì)使用bridge,使用的就是docker0。在宿主機(jī)執(zhí)行ifconfig時(shí),可以查看到docker0或者自己創(chuàng)建的網(wǎng)絡(luò)。
eth0, eth1… 代表網(wǎng)卡一,網(wǎng)卡二…
lo, 表示本地回環(huán)網(wǎng)絡(luò)。
inet ip用來(lái)表示網(wǎng)卡的ip地址。
2. bridge模式詳解
整個(gè)宿主機(jī)的網(wǎng)橋模式都是docker0,類似于一個(gè)交換機(jī)有一大堆接口,每個(gè)接口都可以稱為veth。在宿主機(jī)和容器內(nèi)分別創(chuàng)建一個(gè)虛擬接口,并讓他們彼此連通「veth pair」;
每個(gè)實(shí)例內(nèi)部都有一塊網(wǎng)卡,每個(gè)接口可以稱為eth0。
docker0上面每個(gè)veth,匹配某個(gè)容器內(nèi)部的eth0,一一配對(duì) 或 兩兩配對(duì)。
重要結(jié)論:將宿主機(jī)上的所有容器都連接到這個(gè)內(nèi)部網(wǎng)絡(luò)上,兩個(gè)容器在同一個(gè)網(wǎng)絡(luò)下,會(huì)從這個(gè)網(wǎng)卡拿到分配的ip,此時(shí)兩個(gè)容器的網(wǎng)絡(luò)是互通的。
2.1 驗(yàn)證案例
o
啟動(dòng)兩臺(tái)centos容器,在宿主機(jī)當(dāng)中查看網(wǎng)絡(luò)在情況. ip addr
o
o
進(jìn)入mycentos01容器。
o
o
進(jìn)入mycentos02容器。
o
o
宿主機(jī)eth0, docker0與容器內(nèi)eth0之間的對(duì)應(yīng)關(guān)系。
o
o
完整圖示:
o
2.2 bridge使用的正確姿勢(shì)
五. 總結(jié)
各位小伙伴,今天千鋒健哥為大家?guī)?lái)的birdge模式就是這些內(nèi)容了,是不是很容易理解呢?
docker網(wǎng)絡(luò)作為整個(gè)docker體系中極為重要的一個(gè)知識(shí)點(diǎn),在生產(chǎn)中經(jīng)常被用到,尤其是網(wǎng)絡(luò)模式當(dāng)中的bridge模式和host模式更是應(yīng)該重點(diǎn)掌握。
自定義網(wǎng)絡(luò),可以通過(guò)服務(wù)名稱「容器名稱」進(jìn)行容器間的通信。自動(dòng)處理了容器名稱與ip地址的映射關(guān)系,這樣使得容器間通信更為可靠和容易。
至于其他模式,如果各位小伙伴想要了解,敬請(qǐng)繼續(xù)期待千鋒健哥本系列的其他文章哦。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
SEO優(yōu)化
SEO優(yōu)化,1、合理的title、description、keywords:搜索對(duì)著三項(xiàng)的權(quán)重逐個(gè)減小,title值強(qiáng)調(diào)重點(diǎn)即可;description把頁(yè)面內(nèi)容高度概括,不可過(guò)...詳情>>
2023-04-03 15:11:51
Python數(shù)據(jù)生產(chǎn)器
Python數(shù)據(jù)生產(chǎn)器,在軟件開(kāi)發(fā)、測(cè)試或者數(shù)據(jù)分析過(guò)程中,有時(shí)候會(huì)需要一些測(cè)試數(shù)據(jù)。做測(cè)試的時(shí)候,需要模擬真實(shí)的環(huán)境,但是又不能直接使用真...詳情>>
2023-03-28 15:56:13
Java集合是什么?Java集合詳解
Java集合是Java編程語(yǔ)言中的一個(gè)重要概念,用于存儲(chǔ)、管理和處理數(shù)據(jù)。Java集合框架提供了一組接口和類,用于實(shí)現(xiàn)常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),如列表、棧、...詳情>>
2023-03-20 19:12:47
js查找字符串中指定字符的位置
另外,如果要查找一個(gè)字符串中所有出現(xiàn)的指定字符的位置,可以使用indexOf()方法結(jié)合循環(huán)來(lái)實(shí)現(xiàn)。然后,我們使用循環(huán)遍歷字符串中的每一個(gè)字符...詳情>>
2023-03-10 14:06:35熱門推薦
跨域如何解決
沸SEO優(yōu)化
熱Null和undefined的區(qū)別
熱Python數(shù)據(jù)生產(chǎn)器
新react中怎么實(shí)現(xiàn)vue中的計(jì)算屬性以及watch
經(jīng)典面試題:static加載機(jī)制你知道嗎?
消息中間件常用協(xié)議有哪些
Java集合是什么?Java集合詳解
線程池實(shí)現(xiàn)原理
java數(shù)據(jù)結(jié)構(gòu)與算法
Java到底有多難?
js查找字符串中指定字符的位置
jquery獲取checkbox是否選中
四種方式創(chuàng)建SpringBoot項(xiàng)目
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價(jià)格 -
優(yōu)惠活動(dòng)
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊(duì)
了解師資團(tuán)隊(duì) -
實(shí)戰(zhàn)項(xiàng)目
獲取項(xiàng)目源碼 -
開(kāi)班地區(qū)
查看來(lái)校路線