亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買(mǎi)流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷(xiāo)推廣
客服中心
業(yè)務(wù)咨詢(xún)
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線(xiàn)客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Linux下配置Docker容器間網(wǎng)絡(luò)連接

添加時(shí)間:2016-5-8 18:22:16  添加: 思海網(wǎng)絡(luò) 
Docker容器都是獨(dú)立的,互相隔離的環(huán)境。然而,它們通常只有互相通信時(shí)才能發(fā)揮作用。
雖然有許多方法可以連接容器們,可是我將并不會(huì)試著去將其全部討論在內(nèi)。但是在這一系列的方法中,我們將看看那些常用的做法。
雖然看起來(lái)是很淺顯,但是這對(duì)于與Docker成天打交道的朋友來(lái)說(shuō),理解這些技術(shù)及底層的設(shè)計(jì)理念就顯得非常地重要了。

配置
在我們展示容器間如何被連接之前,我們需要先建立一對(duì)容器作為本次的例子。
第一個(gè)鏡像將是來(lái)源于一個(gè)簡(jiǎn)單的Ubuntu操作系統(tǒng)安裝。它將扮演一個(gè)客戶(hù)端容器的角色。
首先,我們創(chuàng)建該容器并連接到它。



代碼如下:
$ sudo docker run -itd --name=client_setup ubuntu /bin/bash
$ sudo docker attach client_setup

接下來(lái),一旦有了容器內(nèi)的shell程序,我們就可以運(yùn)行以下命令:


代碼如下:
$ apt-get install curl

如果你看不見(jiàn)shell命令提示符,點(diǎn)擊鍵盤(pán)方向區(qū)的向上箭頭。
當(dāng)容器安裝完畢,執(zhí)行CTRL+P和CTRL+Q命令退出該容器。
緊接著我們停止并提交該容器。


代碼如下:
$ sudo docker stop client_setup
$ sudo docker commit client_setup client_img

現(xiàn)在我們可以使用剛才創(chuàng)建的名為client_img的容器了。
第二個(gè)容器我們還是從之前的Ubuntu操作系統(tǒng)的安裝上獲得。但是這一次,我們將把它修改成一個(gè)運(yùn)行了Apache HTTP的服務(wù)器容器。
首先,我們像之前一樣建立并且連接到它:


代碼如下:
$ sudo docker run -itd --name=server_setup ubuntu /bin/bash
$ sudo docker attach server_setup

然后,一旦我們可以用容器內(nèi)的shell程序了,就可以能安裝Apache的HTTP服務(wù)了。


代碼如下:
$ apt-get install apache2

當(dāng)容器安裝完畢,執(zhí)行CTRL+P和CTRL+Q命令退出該容器。
現(xiàn)在我們停止并提交容器:


代碼如下:
$ sudo docker stop server_setup
$ sudo docker commit server_setup server_img

那么現(xiàn)在我們就有了兩個(gè)鏡像了,分別是 client_img 和 server_img。
當(dāng)這些設(shè)置好后,我們就可以探索多種的容器間連接的可能性了。

Docker橋接Bridge
單個(gè)Docker容器是默認(rèn)地與其他容器和外部網(wǎng)絡(luò)隔離的。Docker提供了bridge接口,名為docker0,這其實(shí)是在Docker Engine安裝時(shí)就建立好的。
它通過(guò)Docker的bridge接口可以讓容器間以及容器和主機(jī)之間進(jìn)行通信。
我們可以通過(guò)下面的命令來(lái)查看一個(gè)位于Docker宿主機(jī)上的Docker bridge:



代碼如下:
$ ifconfig docker0

你可以看到類(lèi)似如下的輸出:


代碼如下:
docker0 Link encap:Ethernet HWaddr 02:42:a2:dc:0f:a8 
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:a2ff:fedc:fa8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1477 errors:0 dropped:0 overruns:0 frame:0
TX packets:2436 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:83901 (83.9 KB) TX bytes:3606039 (3.6 MB)

該bridge接口在本地一個(gè)單獨(dú)的Docker宿主機(jī)上運(yùn)行,并且它是我們本篇文章所提及的所有三種方法背后的連接機(jī)制。在下一章節(jié)中,我們將轉(zhuǎn)向overlay接口,這種接口允許把網(wǎng)絡(luò)容器部署在多個(gè)Docker宿主機(jī)上。

端口公開(kāi)Exposing Ports
首先,讓我們看下如何運(yùn)行一個(gè)容器服務(wù)并且公開(kāi)其80端口(HTTP)給其他容器。
為了這么做,我通過(guò)expose命令去運(yùn)行該容器,這是告訴Docker在運(yùn)行該容器的時(shí)候讓其公開(kāi)特定的端口。當(dāng)然,被公開(kāi)的端口是可以被其他容器訪(fǎng)問(wèn)的。
讓我們運(yùn)行server_img并且把該容器命名為server1,公開(kāi)其80端口:



代碼如下:
$ sudo docker run -itd --expose=80 --name=server1 server_img /bin/bash

接下來(lái)我們會(huì)按依次命名這些容器(server1,server2以及其他)。
然后,連接到容器:


代碼如下:
$ sudo docker attach server1

重申一遍,如果你看不見(jiàn)shell命令提示符,可以使用方向鍵的向上箭頭。
啟動(dòng)該容器內(nèi)的Apache HTTP服務(wù):


代碼如下:
$ /etc/init.d/apache2 start

讓我們來(lái)看下獲得的IP地址:


代碼如下:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:03 
inet addr:172.17.0.3 Bcast:0.0.0.0 Mask:255.255.0.0

那么,這樣我們就有了172.17.0.3這個(gè)IP地址。讓我們?cè)囈幌聫囊粋(gè)客戶(hù)端的容器里去看這些信息吧。
打開(kāi)第二個(gè)終端。
啟動(dòng)名稱(chēng)為client1的容器:


代碼如下:
$ sudo docker run -itd --name=client1 client_img /bin/bash

進(jìn)容器里看一下:


代碼如下:
$ sudo docker attach client1

如果你看不見(jiàn)shell命令提示符,可以使用方向鍵的向上箭頭。
讓我們來(lái)測(cè)試一下到server1的連通性:


代碼如下:
$ curl 172.17.0.3

如果一切正常,你應(yīng)該可以看見(jiàn)基于Apache HTTP服務(wù)的默認(rèn)頁(yè)面。這表明client1容器已經(jīng)可以與server1容器的HTTP端口正確地建立連接了。
端口綁定Port Binding
如果我們希望我們的HTTP服務(wù)器公開(kāi)在主機(jī)網(wǎng)絡(luò)呢,包括主機(jī)上的應(yīng)用及主機(jī)網(wǎng)絡(luò)上的其他機(jī)器?在這個(gè)方案中,我們需要去將主機(jī)端口綁定bind至容器端口。
為了讓基于Apache的HTTP服務(wù)器公開(kāi)給主機(jī)所處的網(wǎng)絡(luò),我們需要將該容器的80端口綁定至宿主機(jī)上的8080端口。
我們可以按照以下命令來(lái)這么做:


代碼如下:
$ sudo docker run -itd -p 8080:80 --name=server2 server_img /bin/bash

在這里需要注意的是-p 8080:80選項(xiàng)。
現(xiàn)在,進(jìn)容器看下:


代碼如下:
$ sudo docker attach server2

如果看不見(jiàn)shell的提示符,和之前一樣,按方向區(qū)的向上箭頭,緊接著我們啟動(dòng)該HTTP服務(wù):


代碼如下:
$ /etc/init.d/apache2 start

現(xiàn)在,我們可以從宿主系統(tǒng)去訪(fǎng)問(wèn)http://localhost:8080/,同時(shí)應(yīng)該能看見(jiàn)基于Apache HTTP服務(wù)的默認(rèn)頁(yè)面。 




任何在你主機(jī)網(wǎng)絡(luò)內(nèi)的那些機(jī)器都可以訪(fǎng)問(wèn)由你的宿主機(jī)所發(fā)布出來(lái)的8080端口。

容器鏈接Linking Containers
Docker將另一種涉及到的連接各容器的方法稱(chēng)為鏈接linking。
當(dāng)你將一個(gè)容器鏈接到另一個(gè)容器的時(shí)候,Docker將通過(guò)一些環(huán)境變量來(lái)關(guān)聯(lián)這些容器之間的信息。
我們可以看一下。
首先,啟動(dòng)該服務(wù)器容器。



代碼如下:
$ sudo docker run -itd --name=server3 server_img /bin/bash

接著通過(guò)以下命令一樣去啟動(dòng)客戶(hù)機(jī)容器并鏈接至服務(wù)器容器。


代碼如下:
$ sudo docker run -itd --link server3 --name=client3 client_img /bin/bash

請(qǐng)注意我們這里用了--link server3 選項(xiàng)。
接著我們登錄到客戶(hù)機(jī)容器看一眼:


代碼如下:
$ sudo docker attach client3

然后我們檢查一下可用的環(huán)境變量:


代碼如下:
$ env | grep SERVER3
SERVER3_PORT_80_TCP_PROTO=tcp
SERVER3_PORT=tcp://172.17.0.2:80
SERVER3_PORT_80_TCP_PORT=80
SERVER3_NAME=/client3/server3
SERVER3_PORT_80_TCP=tcp://172.17.0.2:80
SERVER3_PORT_80_TCP_ADDR=172.17.0.2

Docker同樣也更新了客戶(hù)端容器中的/etc/hosts 文件并且將server3作為一個(gè)本地主機(jī)指向了服務(wù)器容器。
為了演示該情況,讓我們運(yùn)行以下命令看一看:


代碼如下:
$ curl server3

你應(yīng)該可以再一次看見(jiàn)那個(gè)相同的默認(rèn)HTML頁(yè)面了。

總結(jié)
在這一系列的第一部分,我們介紹了Docker橋接bridge接口,它可以讓我們連接同一臺(tái)宿主機(jī)上的各容器。
我們也聊了聊以下三種連接方法:
1.通過(guò)端口公開(kāi)exposure連接
2.將宿主機(jī)端口綁定bind至容器端口
3.通過(guò)鏈接link選項(xiàng)去連接兩個(gè)容器


關(guān)鍵字:Linux、Docker、網(wǎng)絡(luò)連接
分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話(huà):(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專(zhuān)項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開(kāi)網(wǎng)站