docker系列三 網(wǎng)絡(luò)

1班缰、查看docker網(wǎng)絡(luò)

docker network ls
1.png

2匈睁、查看bridge網(wǎng)絡(luò)的詳細(xì)信息

docker network inspect

看到當(dāng)前虛機(jī)有三個(gè)容器蹬碧,每個(gè)容器都有自己的網(wǎng)段以及ip地址

2.png

3皇筛、在虛擬機(jī)中運(yùn)行ip a命令查看所有網(wǎng)絡(luò)接口信息

ip a

其中docker0屬于本機(jī),要和容器進(jìn)行通信社痛,就需要本地和容器有一對(duì) veth接口對(duì)见转。

3.png

4、查看容器接口對(duì)以及ip信息

docker exec 3cea9f8e0a2d ip a

可以看出該容器和本地的57號(hào)接口 同屬于一個(gè)接口對(duì)蒜哀。正式由于這一對(duì)接口的存在才保證了docker容器和本地進(jìn)行通信斩箫。

也就是說:docker容器連接到docker0,然后通過docker0訪問其他容器以及外網(wǎng)撵儿。

4.png

5乘客、通過命令檢查容器連接到docker0

brctl show            --需要安裝插件 bridge-utils

可以看到當(dāng)前有三個(gè)容器接口連接到docker0,和上面在本地通過ip a查看到的網(wǎng)絡(luò)接口信息一致淀歇。

5.png

6易核、單個(gè)容器如何和外網(wǎng)進(jìn)行通信:結(jié)構(gòu)圖如下

6.png

(1)、首先linux主機(jī)是可以通過eth0訪問外網(wǎng) internet

(2)浪默、容器里面的數(shù)據(jù)包牡直,要訪問外網(wǎng),會(huì)進(jìn)過docker0 這個(gè)bridge纳决。在此處做一個(gè)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)碰逸,轉(zhuǎn)換成eth0的地址,然后作為linux主機(jī)的一個(gè)數(shù)據(jù)包被發(fā)送到外網(wǎng)阔加,自然就訪問了外網(wǎng)饵史。

(3)、此處的NAT網(wǎng)絡(luò)地址轉(zhuǎn)換是通過iptables來實(shí)現(xiàn)的掸哑。

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

這條規(guī)則會(huì)將源地址為172.17.0.0/16的包(也就是從Docker容器產(chǎn)生的包)约急,并且不是從docker0網(wǎng)卡發(fā)出的,進(jìn)行源地址轉(zhuǎn)換苗分,轉(zhuǎn)換成主機(jī)網(wǎng)卡的地址。這么說可能不太好理解牵辣,舉一個(gè)例子說明一下摔癣。

假設(shè)主機(jī)有一塊網(wǎng)卡為eth0,IP地址為10.10.101.105/24纬向,網(wǎng)關(guān)為10.10.101.254择浊。從主機(jī)上一個(gè)IP為172.17.0.1/16的容器中ping百度(180.76.3.151)。IP包首先從容器發(fā)往自己的默認(rèn)網(wǎng)關(guān)docker0逾条,包到達(dá)docker0后琢岩,也就到達(dá)了主機(jī)上。然后會(huì)查詢主機(jī)的路由表师脂,發(fā)現(xiàn)包應(yīng)該從主機(jī)的eth0發(fā)往主機(jī)的網(wǎng)關(guān)10.10.105.254/24担孔。接著包會(huì)轉(zhuǎn)發(fā)給eth0江锨,并從eth0發(fā)出去(主機(jī)的ip_forward轉(zhuǎn)發(fā)應(yīng)該已經(jīng)打開)。這時(shí)候糕篇,上面的Iptable規(guī)則就會(huì)起作用啄育,對(duì)包做SNAT轉(zhuǎn)換 ( 源地址轉(zhuǎn)換 ),將源地址換為eth0的地址拌消。這樣挑豌,在外界看來,這個(gè)包就是從10.10.101.105上發(fā)出來的墩崩,Docker容器對(duì)外是不可見的氓英。

反之,假如對(duì)一個(gè)web容器做端口映射鹦筹,-p 80:80铝阐,那么容器啟動(dòng)之后,在iptables規(guī)則中則會(huì)生成一條類似如下的規(guī)則盛龄。也就是對(duì)包做了一個(gè)DNAT轉(zhuǎn)換(目的地址轉(zhuǎn)換)饰迹,將訪問主機(jī)80端口的包轉(zhuǎn)換成容器的ip地址,從而發(fā)往容器余舶。

-A DOCKER ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.5:80

7啊鸭、新建docker network

docker network create -d bridge my-bridge

-d    --指定Driver為bridge

8、新建docker時(shí)指定使用那個(gè)bridge

docker run -d --name test --network my-bridge busybox /bin/sh

可以通過brctl show 檢測(cè)到接口綁定到my-bridge上匿值。

9赠制、修改已經(jīng)運(yùn)行的docker連接的network

docker network connect my-bridge test

my-bridge    表示network

test        表示容器名

但是通過此種方法,test默認(rèn)在docker0上的連接不會(huì)刪除挟憔,只會(huì)在my-bridge這個(gè)網(wǎng)橋上新建一個(gè)連接

如果bridge是用戶自己創(chuàng)建的钟些,并且連接有多個(gè)容器,那么這些容器之間不僅可以通過ping ip绊谭,還可以通過ping 容器名政恍,默認(rèn)容器之間是使用了--link 參數(shù)的,可以相互連通达传。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末篙耗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宪赶,更是在濱河造成了極大的恐慌宗弯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂妻,死亡現(xiàn)場(chǎng)離奇詭異蒙保,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欲主,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門邓厕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逝嚎,“玉大人,你說我怎么就攤上這事邑狸⌒概矗” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵单雾,是天一觀的道長(zhǎng)赚哗。 經(jīng)常有香客問我,道長(zhǎng)硅堆,這世上最難降的妖魔是什么屿储? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮渐逃,結(jié)果婚禮上够掠,老公的妹妹穿的比我還像新娘。我一直安慰自己茄菊,他們只是感情好疯潭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著面殖,像睡著了一般竖哩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脊僚,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天相叁,我揣著相機(jī)與錄音,去河邊找鬼辽幌。 笑死增淹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的乌企。 我是一名探鬼主播虑润,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼加酵!你這毒婦竟也來了端辱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤虽画,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后荣病,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體码撰,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年个盆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脖岛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朵栖。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖柴梆,靈堂內(nèi)的尸體忽然破棺而出陨溅,到底是詐尸還是另有隱情,我是刑警寧澤绍在,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布门扇,位于F島的核電站,受9級(jí)特大地震影響偿渡,放射性物質(zhì)發(fā)生泄漏臼寄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一溜宽、第九天 我趴在偏房一處隱蔽的房頂上張望吉拳。 院中可真熱鬧,春花似錦适揉、人聲如沸留攒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼邀。三九已至,卻和暖如春吃沪,著一層夾襖步出監(jiān)牢的瞬間汤善,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工票彪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留红淡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓降铸,卻偏偏與公主長(zhǎng)得像在旱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子推掸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 五桶蝎、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問不到的谅畅。此外登渣,除了...
    R_X閱讀 1,748評(píng)論 0 7
  • 概述 自從docker容器出現(xiàn)以來,容器的網(wǎng)絡(luò)通信就一直是大家關(guān)注的焦點(diǎn)毡泻,也是生產(chǎn)環(huán)境的迫切需求胜茧。而容器的網(wǎng)絡(luò)通信...
    糙老爺們兒吃什么櫻桃閱讀 3,623評(píng)論 1 5
  • docker0網(wǎng)橋當(dāng)在一臺(tái)未經(jīng)過特殊網(wǎng)絡(luò)配置的centos 或 ubuntu機(jī)器上安裝完docker之后,在宿主機(jī)...
    沉淪2014閱讀 1,398評(píng)論 0 0
  • 很多人可能在項(xiàng)目中已經(jīng)使用docker很長(zhǎng)時(shí)間,但是卻很少有人知道docker的網(wǎng)絡(luò)是如何實(shí)現(xiàn)的呻顽。我應(yīng)該就算是很多...
    水雨田閱讀 1,116評(píng)論 0 3
  • 我們?cè)谑褂胐ocker run創(chuàng)建Docker容器時(shí)雹顺,可以用--net選項(xiàng)指定容器的網(wǎng)絡(luò)模式,Docker有以下4...
    姚興泉閱讀 422評(píng)論 0 0