Docker學(xué)習(xí)筆記#3

一罢低、網(wǎng)絡(luò)

docker提供幾種網(wǎng)絡(luò)璃饱,它決定容器之間和外界和容器之間怎么樣去相互通信。查看網(wǎng)絡(luò)苍柏,我們可以執(zhí)行:

docker network ls
network
  • null是無(wú)網(wǎng)絡(luò)尼斧,使用這種網(wǎng)絡(luò)的容器會(huì)完全隔離。
  • host是主機(jī)網(wǎng)絡(luò)试吁,只用這種網(wǎng)絡(luò)的容器會(huì)使用主機(jī)的網(wǎng)絡(luò)棺棵,這種網(wǎng)絡(luò)對(duì)外界是完全開放的,能夠訪問到主機(jī)熄捍,就能訪問到容器烛恤。
  • bridge是橋接網(wǎng)絡(luò),除非創(chuàng)建容器的時(shí)候指定網(wǎng)絡(luò)余耽,不然容器就會(huì)默認(rèn)的使用橋接網(wǎng)絡(luò)缚柏。屬于這個(gè)網(wǎng)絡(luò)的容器之間可以相互通信,不過(guò)外界想要訪問到這個(gè)網(wǎng)絡(luò)的容器呢碟贾,需使用橋接網(wǎng)絡(luò)币喧,有點(diǎn)像主機(jī)和容器之間的一座橋轨域,對(duì)容器有一點(diǎn)隔離作用。

bridge網(wǎng)絡(luò)

查看bridge網(wǎng)絡(luò)的信息杀餐,可以使用:

docker network inspect bridge
inspect bridge

這里會(huì)列出bridge網(wǎng)絡(luò)的相關(guān)信息干发,Containers表示使用了這網(wǎng)絡(luò)的容器,現(xiàn)在還沒有×常現(xiàn)在去創(chuàng)建一個(gè):

docker run -d --name web1 --net bridge nginx

使用nginx的鏡像創(chuàng)建一個(gè)名叫web1的容器铐然,同時(shí)使用--net的選項(xiàng)指定使用的網(wǎng)絡(luò),如果不指定恶座,默認(rèn)也是bridge網(wǎng)絡(luò)搀暑。再查看下bridge網(wǎng)絡(luò)的信息:

bridge2

會(huì)看到在Container里面有個(gè)容器,就是剛剛創(chuàng)建的web1容器跨琳。也可以看到這個(gè)容器在這個(gè)網(wǎng)絡(luò)下的IP地址:172.17.0.2自点。

我們?cè)賱?chuàng)建一個(gè)容器叫web2,查看bridge網(wǎng)絡(luò)信息脉让,可知web2的網(wǎng)絡(luò)IP為172.17.0.3桂敛。接著登錄web1容器,ping web2容器的IP:

web2

可以看到處在bridge網(wǎng)絡(luò)下的容器之間可以相互通信溅潜。

none網(wǎng)絡(luò)

可以先創(chuàng)建容器术唬,使用--net指定none網(wǎng)絡(luò):

docker run -d --name web_none --net none nginx

然后查看none網(wǎng)絡(luò)的相關(guān)信息:

docker network inspect none
inspect none

在Container里有剛剛創(chuàng)建的網(wǎng)絡(luò)web_none,然后發(fā)現(xiàn)這個(gè)容器并沒有可以使用的IP地址滚澜,所以這個(gè)網(wǎng)絡(luò)無(wú)法跟外界通信粗仓。

登錄容器,查看ip地址:

web_none

沒有IP地址设捐,只有l(wèi)o的網(wǎng)絡(luò)借浊。

host網(wǎng)絡(luò)

使用nginx創(chuàng)建一個(gè)屬于host網(wǎng)絡(luò),并后臺(tái)運(yùn)行萝招,然后查看host網(wǎng)絡(luò)信息:

web_host

看到host網(wǎng)絡(luò)下有剛剛創(chuàng)建的容器蚂斤,但這個(gè)容器同樣沒有IP地址。因?yàn)樗褂玫氖侵鳈C(jī)的IP地址槐沼。

二曙蒸、端口

如果你想讓外界可以訪問到,基于bridge網(wǎng)絡(luò)創(chuàng)建的容器提供的服務(wù)母赵,那你可以告訴Docker你要使用哪些接口逸爵。如果想查看鏡像會(huì)使用哪些端口,可以使用:

docker inspect nginx
inspect nginx

ExposedPorts凹嘲,會(huì)告訴你這個(gè)鏡像使用哪些端口师倔。nginx使用了443和80,443是https使用的端口,80是http使用的端口趋艘。

端口綁定

在創(chuàng)建容器的時(shí)候可以指定這個(gè)容器的端口與主機(jī)端口的映射關(guān)系疲恢。

docker run -d --name web3 -p 8888:80 nginx

說(shuō)明:

  • -p或者--publish 可以指定主機(jī)與容器的端口關(guān)系,冒號(hào)左邊是主機(jī)的端口瓷胧,冒號(hào)右邊是映射到容器中得端口显拳。

創(chuàng)建完容器后,訪問本機(jī)的8888端口搓萧,可以訪問到容器的80端口杂数。

nginx

想要查看容器的端口情況,可以使用:

docker port web3

如果在創(chuàng)建容器的時(shí)候瘸洛,-p參數(shù)后只有一個(gè)指定端口揍移,意思就是主機(jī)會(huì)隨機(jī)一個(gè)端口,映射到容器的的該指定端口:

docker run -d --name web3 -p 80 nginx
nginx2

訪問隨機(jī)分配的端口:32768

nginx3

接著刪掉web3容器反肋,使用--publish-all或者-P來(lái)創(chuàng)建容器:

publish all

Docker會(huì)為我們分配所有鏡像中會(huì)使用的端口的映射端口那伐,nginx使用443和80,使用了-P選項(xiàng)創(chuàng)建容器時(shí)石蔗,則幫我們做了443->32769 80->32770的映射關(guān)系罕邀。

三、自定義網(wǎng)絡(luò)

我們可以基于某一個(gè)類型的網(wǎng)絡(luò)去創(chuàng)建一些自定義的網(wǎng)絡(luò)养距,這樣屬于這個(gè)網(wǎng)絡(luò)的容器就可以單獨(dú)隔離出來(lái)诉探,他們之間可以相互通信,而不在這個(gè)網(wǎng)絡(luò)的容器棍厌,就不能直接訪問到他們阵具。一個(gè)容器可以屬于多個(gè)網(wǎng)絡(luò),同一個(gè)自定義網(wǎng)絡(luò)下的容器定铜,可以通過(guò)各自的容器名訪問到對(duì)方,因?yàn)闀?huì)使用到Docker內(nèi)嵌的一個(gè)dns功能怕敬。

創(chuàng)建一個(gè)新的網(wǎng)絡(luò)揣炕,可以使用:

docker network create --driver bridge web

--driver 是指定網(wǎng)絡(luò)的類型,后面的是該網(wǎng)絡(luò)的類型东跪。

web

查看網(wǎng)絡(luò)類型列表可以查看到新創(chuàng)建的web網(wǎng)絡(luò)畸陡。查看web網(wǎng)絡(luò)的相關(guān)信息,Subnet表示這個(gè)網(wǎng)絡(luò)下的子網(wǎng)IP端虽填,那么基于web自定義網(wǎng)絡(luò)下創(chuàng)建的容器ip都會(huì)是172.18開頭丁恭。目前這個(gè)自定義網(wǎng)絡(luò)下還有沒有容器,所以Container為空斋日。

基于web網(wǎng)絡(luò)去創(chuàng)建容器

docker run -d --name web5 --net web nginx
web5

如果想將已創(chuàng)建的容器web3放到自定義網(wǎng)絡(luò)web中牲览,可以使用:

docker network connect web web3
web3

登錄web3網(wǎng)絡(luò),執(zhí)行ip addr恶守,會(huì)看到web3正處于兩個(gè)網(wǎng)絡(luò)當(dāng)中第献,bridge和web贡必。

web3_2

如果想將web3從bridge網(wǎng)絡(luò)中移出,可以執(zhí)行:

docker network disconnect bridge web3
disconnect

可以看到庸毫,bridge網(wǎng)絡(luò)中仔拟,已經(jīng)沒有了web3容器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末飒赃,一起剝皮案震驚了整個(gè)濱河市利花,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌载佳,老刑警劉巖炒事,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異刚盈,居然都是意外死亡羡洛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門藕漱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窥妇,“玉大人,你說(shuō)我怎么就攤上這事茬斧“伤拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵橄仍,是天一觀的道長(zhǎng)韧涨。 經(jīng)常有香客問我,道長(zhǎng)侮繁,這世上最難降的妖魔是什么虑粥? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮宪哩,結(jié)果婚禮上娩贷,老公的妹妹穿的比我還像新娘。我一直安慰自己锁孟,他們只是感情好彬祖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著品抽,像睡著了一般储笑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上圆恤,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天突倍,我揣著相機(jī)與錄音,去河邊找鬼。 笑死赘方,一個(gè)胖子當(dāng)著我的面吹牛烧颖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窄陡,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼炕淮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了跳夭?” 一聲冷哼從身側(cè)響起涂圆,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎币叹,沒想到半個(gè)月后润歉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颈抚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年踩衩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贩汉。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驱富,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匹舞,到底是詐尸還是另有隱情褐鸥,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布赐稽,位于F島的核電站叫榕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏姊舵。R本人自食惡果不足惜晰绎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望括丁。 院中可真熱鬧寒匙,春花似錦、人聲如沸躏将。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祸憋。三九已至,卻和暖如春肖卧,著一層夾襖步出監(jiān)牢的瞬間蚯窥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拦赠,地道東北人巍沙。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像荷鼠,于是被迫代替她去往敵國(guó)和親句携。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

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