Docker 網(wǎng)絡(luò)基礎(chǔ)配置

Docker 目前了提供映射容器端口至宿主主機(jī)和容器互聯(lián)機(jī)制來為容器提供網(wǎng)絡(luò)服務(wù)呈驶。

端口映射實(shí)現(xiàn)訪向容器

從外部訪問容器應(yīng)用

當(dāng)容器中運(yùn)行一些網(wǎng)絡(luò)應(yīng)用,要讓外部訪問這些應(yīng)用時疫鹊,可以通過 -P 或 -p 參數(shù)來指定端口映射袖瞻。當(dāng)使用 -P 標(biāo)記時司致, Docker 會隨機(jī)映射一個 49000 ~ 49900 的端口至容器內(nèi)部開放的網(wǎng)絡(luò)端口。

Paste_Image.png

使用 docker ps 看到聋迎,本地主機(jī)的32769 被映射到了容器的5000端口脂矫。
訪問宿主機(jī)的32769 端口即可訪問容器內(nèi) Web 應(yīng)用提供的界面。
同樣霉晕,可以通過 docker logs 命令來查看應(yīng)用的信息:

root@localhost:~# sudo docker logs -f nostalgic_morse

-p(小寫)指定要映射的端口庭再,并且,在一個指定端口上只可以綁定一個容器牺堰。

映射所有接口地址

使用 hostPort:containerPort 格式將本地的5000 端口映射到容器的5000 端口拄轻,可執(zhí)行如下命令:

root@localhost:~# sudo docker run -d -p 5000:5000 training/webapp python app.py

此時默認(rèn)會綁定本地所有接口上的所有地址。多次使用 -p 標(biāo)記可以綁定多個端口伟葫。
例如:

root@localhost:~# sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

tainerPort 映射到指定地址的指定端口

可以使用 ip:hostPort:containerPort 格式指定映射使用一個特定地址恨搓,比如localhost 地址 127.0.0.1

root@localhost:~# sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

映射到指定地址的任意端口

使用 ip::containerPort 綁定 localhost 的任意端口到容器的 5000 端口,本地主機(jī)會自動分配一個端口:

root@localhost:~# sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py

還可以使用 udp 標(biāo)記來指定 udp 端口:

root@localhost:~# sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

查看映射端口配置

使用 docker port 來查看當(dāng)前映射的端口配置筏养,也可以查看到綁定的地址:

root@localhost:~# sudo docker port nostalgic_morse 5000

注意:容器有自己的內(nèi)部網(wǎng)絡(luò)和IP 地址(使用 docker inspect +容器ID 可以獲取所有的變量值)奶卓。

容器互聯(lián)實(shí)現(xiàn)容器間通信

容器的連接(linking) 系統(tǒng)是除了端口映射外另一種可以與容器中應(yīng)用進(jìn)行交互的方式。它會在源和接收容器之前創(chuàng)建一個隧道撼玄,接收容器可以看到源容器指定的信息夺姑。

自定義容器命名

連接系統(tǒng)依據(jù)容器的名稱來執(zhí)行。
使用 --name 標(biāo)記可以為容器自定義命名:

root@localhost:~# sudo docker run -d -P --name web training/webapp python app.py

使用 docker ps 來驗(yàn)證設(shè)定的命名:

Paste_Image.png

也可以使用 docker inspect 來查看容器的名字:

root@localhost:~# sudo docker inspect -f "{{ .Name}}" 6531768ffa42

注意

容器的名稱是唯一的掌猛。如果已經(jīng)命名了一個叫 web 的容器盏浙,當(dāng)你要再次使用 web 這個名稱的時候,需要先用 docker rm 來刪除之前創(chuàng)建的同名容器荔茬。

容器互聯(lián)

使用 --link 參數(shù)可以讓容器之前安全的進(jìn)行交互废膘。
1.先創(chuàng)建一個數(shù)據(jù)庫容器

root@localhost:~# sudo docker run -d --name db training/postgres

2.刪除之前創(chuàng)建的 web 容器

root@localhost:~# sudo docker rm -f web

3.然后創(chuàng)建一個新的 web 容器,并將它連接到 db 容器:

root@localhost:~# sudo docker run -d -P --name web --link db:db training/webapp python app.py

此時 db 容器和 web 容器建立互聯(lián)關(guān)系慕蔚。
--link 參數(shù)的格式為 --link name:alias, 其中 name 是要鏈接的容器的名稱丐黄, alias 是這個連接的別名。
使用 docker ps 來查看容器的連接:

Paste_Image.png

下面是父容器web 的hosts 文件:

Paste_Image.png

可以在web容器中安裝ping命令來測試跟db容器的連通:

Paste_Image.png

小結(jié):

網(wǎng)絡(luò)是云時代最核心也是最復(fù)雜的系統(tǒng)之一孔飒。Docker 目前采用了Linux 系統(tǒng)自帶的網(wǎng)絡(luò)系統(tǒng)來實(shí)現(xiàn)對網(wǎng)絡(luò)服務(wù)的支持灌闺,提供穩(wěn)定支持又可以實(shí)現(xiàn)快速的高性能轉(zhuǎn)發(fā)。
在生產(chǎn)環(huán)境中坏瞄,可以下入 SDN(軟件定義網(wǎng)絡(luò))或 NFV(網(wǎng)絡(luò)功能虛擬化)的相關(guān)技術(shù)桂对。

參考文檔

《Docker 技術(shù)入門與實(shí)戰(zhàn)》第7章 網(wǎng)絡(luò)基礎(chǔ)配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鸠匀,隨后出現(xiàn)的幾起案子蕉斜,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宅此,死亡現(xiàn)場離奇詭異机错,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)父腕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門毡熏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侣诵,你說我怎么就攤上這事痢法。” “怎么了杜顺?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵财搁,是天一觀的道長。 經(jīng)常有香客問我躬络,道長尖奔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任穷当,我火速辦了婚禮提茁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馁菜。我一直安慰自己茴扁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布汪疮。 她就那樣靜靜地躺著峭火,像睡著了一般。 火紅的嫁衣襯著肌膚如雪智嚷。 梳的紋絲不亂的頭發(fā)上卖丸,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天鸟妙,我揣著相機(jī)與錄音孝赫,去河邊找鬼。 笑死试和,一個胖子當(dāng)著我的面吹牛猜嘱,可吹牛的內(nèi)容都是我干的衅枫。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼泉坐,長吁一口氣:“原來是場噩夢啊……” “哼为鳄!你這毒婦竟也來了裳仆?” 一聲冷哼從身側(cè)響起腕让,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纯丸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偏形,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年觉鼻,在試婚紗的時候發(fā)現(xiàn)自己被綠了俊扭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡坠陈,死狀恐怖萨惑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仇矾,我是刑警寧澤庸蔼,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站贮匕,受9級特大地震影響姐仅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刻盐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一掏膏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敦锌,春花似錦馒疹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伶丐,卻和暖如春悼做,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哗魂。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工肛走, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人录别。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓朽色,卻偏偏與公主長得像,于是被迫代替她去往敵國和親组题。 傳聞我的和親對象是個殘疾皇子葫男,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

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

  • docker提供了映射容器端口到宿主主機(jī)和容器互聯(lián)機(jī)制來為容器提供網(wǎng)絡(luò)服務(wù)。本節(jié)講解docker的網(wǎng)絡(luò)功能崔列,包括使...
    八目朱勇銘閱讀 652評論 0 1
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一梢褐、Docker 簡介 Docke...
    極客圈閱讀 10,481評論 0 120
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理旺遮,服務(wù)發(fā)現(xiàn),斷路器盈咳,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 五耿眉、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問不到的鱼响。此外鸣剪,除了...
    R_X閱讀 1,740評論 0 7
  • 馬上就要面臨畢業(yè)找工作了,前路茫茫丈积。 最近時常和一些已經(jīng)工作的朋友們聊天筐骇,也跟一些和我一樣在為了畢業(yè)焦頭爛額的同學(xué)...
    進(jìn)擊的阿淼閱讀 206評論 2 2