Docker 自修筆記(五)—— 示例學(xué)習(xí)

本博客為JDGan自修D(zhuǎn)ocker的筆記盖呼,如有粗鄙之處,還請(qǐng)見(jiàn)諒~

閱讀本博客前化撕,請(qǐng)確定了解了以前的blog:
Docker 自修筆記(一)
Docker 自修筆記 附 —— 分享docker鏡像
Docker 自修筆記(二)
Docker 自修筆記(三)
Docker 自修筆記(四)

容器的網(wǎng)絡(luò)部署

通過(guò)默認(rèn)網(wǎng)絡(luò)驅(qū)動(dòng)器部署容器

Docker 可以通過(guò)使用網(wǎng)絡(luò)驅(qū)動(dòng)器(network drivers)來(lái)進(jìn)行網(wǎng)絡(luò)部署几晤,Docker引擎自動(dòng)啟動(dòng)了幾個(gè)網(wǎng)絡(luò),可以通過(guò)ls打印出來(lái):

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a2d429ecaf49        bridge              bridge              local
ce0f138b6685        docker_gwbridge     bridge              local
699a0339616b        host                host                local
20791422dd99        none                null                local

Docker 默認(rèn)是使用bridge來(lái)啟動(dòng)網(wǎng)絡(luò)容器植阴,通過(guò)inspect來(lái)檢查該網(wǎng)絡(luò)的信息蟹瘾。

$ docker run -itd --name=networktest ubuntu
......
......
$ docker network inspect bridge

[
    {
        "Name": "bridge",
        "Id": "f7ab26d71dbd6f557852c7156ae0574bbf62c42f539b50c8ebde0f728a253b6f",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.1/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c": {
                "Name": "networktest",
                "EndpointID": "647c12443e91faf0fd508b6edfe59c30b642abb60dfab890b4bdccee38750bc1",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "9001"
        },
        "Labels": {}
    }
]

如果需要斷開容器的網(wǎng)絡(luò),可以通過(guò)disconnect命令來(lái)執(zhí)行:

$ docker network disconnect bridge networktest

創(chuàng)建自定義bridge網(wǎng)絡(luò)

Docker官方支持的網(wǎng)絡(luò)驅(qū)動(dòng)器為:bridgeoverlay兩種:bridge是僅支持單個(gè)主機(jī)的網(wǎng)絡(luò)掠手,而overlay支持多個(gè)主機(jī)憾朴。

舉個(gè)栗子,首先創(chuàng)建一個(gè)bridge網(wǎng)絡(luò):

$ docker network create -d bridge my_bridge
$ docker inspect my_bridge
[
    {
        "Name": "my_bridge",
        "Id": "b76785001c95aa6a59a68362afa31c6980f23fcbbf6e99c31e32299f815dd188",
        "Created": "2017-07-19T08:04:48.72271711Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

將容器添加到網(wǎng)絡(luò)

通過(guò)使用--net=my_bridge運(yùn)行容器喷鸽,來(lái)使用上面創(chuàng)建的網(wǎng)絡(luò)里众雷。
首先獲取一個(gè)PostgreSQL數(shù)據(jù)庫(kù),并連接到網(wǎng)絡(luò)做祝。

$ docker run -d --net=my_bridge --name db training/postgres

完成后可以檢查docker網(wǎng)絡(luò):

$ docker inspect --format='{{json .NetworkSettings.Networks}}'  db

{"my_bridge":{"IPAMConfig":null,"Links":null,"Aliases":["2ba194069046"],"NetworkID":"b76785001c95aa6a59a68362afa31c6980f23fcbbf6e99c31e32299f815dd188","EndpointID":"65c9a19a51451eec25bd81a78c156d26aa466df037043f8a2e552f8236c713bd","Gateway":"172.18.0.1","IPAddress":"172.18.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:12:00:02","DriverOpts":null}}

數(shù)據(jù)庫(kù)啟動(dòng)并連接成功啦砾省, 接下來(lái)我們啟動(dòng)一個(gè)web服務(wù):

$ docker run -d --name web training/webapp python app.py

啟動(dòng)成功的結(jié)構(gòu)圖。


完成后的host結(jié)構(gòu)圖

檢查啟動(dòng)結(jié)果:

$ docker inspect --format='{{json .NetworkSettings.Networks}}'  web

{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"cdd6f0ecda824d95469b6105085b96574e1fa96bdccaa726f42a2ba89e30c863","EndpointID":"5aef9b86a310d42b9ee22a52098f000793b9f0b90b934a47dfe8257c42920e7c","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02","DriverOpts":null}}

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web

172.17.0.2

然后混槐,在db容器上啟動(dòng)shell:

$ docker exec -it db bash
root@2ba194069046:/# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
^C
--- 172.17.0.2 ping statistics ---
12 packets transmitted, 0 received, 100% packet loss, time 11416ms

兩個(gè)容器在不同的網(wǎng)絡(luò)上運(yùn)行编兄,所以無(wú)法連接。Docker 允許容器連接多個(gè)網(wǎng)絡(luò)声登,并且也可以在容器運(yùn)行時(shí)修改連接的網(wǎng)絡(luò)狠鸳。那么:

$ docker network connect my_bridge web

修改后啟動(dòng)成功的結(jié)構(gòu)圖。


完成后的host結(jié)構(gòu)圖

再次打開db的shell悯嗓,嘗試ping

$ docker exec -it db bash
root@2ba194069046:/# ping web
PING web (172.18.0.3) 56(84) bytes of data.
64 bytes from web.my_bridge (172.18.0.3): icmp_seq=1 ttl=64 time=0.094 ms
64 bytes from web.my_bridge (172.18.0.3): icmp_seq=2 ttl=64 time=0.070 ms
64 bytes from web.my_bridge (172.18.0.3): icmp_seq=3 ttl=64 time=0.076 ms
64 bytes from web.my_bridge (172.18.0.3): icmp_seq=4 ttl=64 time=0.070 ms
64 bytes from web.my_bridge (172.18.0.3): icmp_seq=5 ttl=64 time=0.076 ms
^C
--- web ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4130ms
rtt min/avg/max/mdev = 0.070/0.077/0.094/0.010 ms

這樣件舵,我們就完成了我們的web和db的網(wǎng)絡(luò)部署。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绅作,一起剝皮案震驚了整個(gè)濱河市芦圾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俄认,老刑警劉巖个少,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異眯杏,居然都是意外死亡夜焦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門岂贩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)茫经,“玉大人,你說(shuō)我怎么就攤上這事⌒渡。” “怎么了抹镊?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荤傲。 經(jīng)常有香客問(wèn)我垮耳,道長(zhǎng),這世上最難降的妖魔是什么遂黍? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任终佛,我火速辦了婚禮,結(jié)果婚禮上雾家,老公的妹妹穿的比我還像新娘铃彰。我一直安慰自己,他們只是感情好芯咧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布牙捉。 她就那樣靜靜地躺著,像睡著了一般敬飒。 火紅的嫁衣襯著肌膚如雪鹃共。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天驶拱,我揣著相機(jī)與錄音霜浴,去河邊找鬼。 笑死蓝纲,一個(gè)胖子當(dāng)著我的面吹牛阴孟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播税迷,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼永丝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了箭养?” 一聲冷哼從身側(cè)響起慕嚷,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毕泌,沒(méi)想到半個(gè)月后喝检,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撼泛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年挠说,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愿题。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡损俭,死狀恐怖蛙奖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杆兵,我是刑警寧澤雁仲,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站琐脏,受9級(jí)特大地震影響伯顶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜骆膝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灶体。 院中可真熱鬧阅签,春花似錦、人聲如沸蝎抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)樟结。三九已至养交,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓢宦,已是汗流浹背碎连。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驮履,地道東北人鱼辙。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玫镐,于是被迫代替她去往敵國(guó)和親倒戏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一恐似、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,510評(píng)論 0 120
  • 概述 自從docker容器出現(xiàn)以來(lái)杜跷,容器的網(wǎng)絡(luò)通信就一直是大家關(guān)注的焦點(diǎn),也是生產(chǎn)環(huán)境的迫切需求矫夷。而容器的網(wǎng)絡(luò)通信...
    糙老爺們兒吃什么櫻桃閱讀 3,625評(píng)論 1 5
  • 不積跬步無(wú)以得涅槃 涅槃二字葛闷,其實(shí)按照以往的印象,我都以為是一而再双藕,再而三的重復(fù)循環(huán)的一種模式孵运,就好比如:涅槃重生...
    十一安閱讀 626評(píng)論 8 8
  • 空閑了,就要找尋一座燈塔蔓彩,慰藉忙碌的心治笨。 不是指路牌驳概,不要學(xué)著長(zhǎng)大,沒(méi)有是是非非旷赖。是初晨碼頭顺又,雨霧繚繞,自由穿梭等孵;...
    小寶Ariny閱讀 581評(píng)論 1 7