Docker容器都是獨立的,互相隔離的環(huán)境。然而,它們通常只有互相通信時才能發(fā)揮作用。
雖然有許多方法可以連接容器們,可是我將并不會試著去將其全部討論在內(nèi)。但是在這一系列的方法中,我們將看看那些常用的做法。
雖然看起來是很淺顯,但是這對于與Docker成天打交道的朋友來說,理解這些技術(shù)及底層的設(shè)計理念就顯得非常地重要了。
理解這些主題將會:
幫助開發(fā)和運維人員探索廣泛的容器部署的選擇。 讓開發(fā)和運維人員更自信的著手于微服務(wù)microservice架構(gòu)設(shè)計。 讓開發(fā)和運維人員可以較好的編排更復(fù)雜的分布式應(yīng)用程序。幸運地是,大量的連接選項為容器間通信打開了更為廣泛的方法,可以讓我們靈活地選擇一個架構(gòu)并能適合任何應(yīng)用程序的需求。
在這篇文章中,我們將會看一下三個較為古老也是更基本的連接各容器的方法。我們會將這種知識和經(jīng)驗作為基石,然后在下一章節(jié)中轉(zhuǎn)移到兩種較新,較為簡單且更強大的方法。
配置
在我們展示容器間如何被連接之前,我們需要先建立一對容器作為本次的例子。
第一個鏡像將是來源于一個簡單的Ubuntu操作系統(tǒng)安裝。它將扮演一個客戶端容器的角色。
首先,我們創(chuàng)建該容器并連接到它。
$ sudo docker run -itd --name=client_setup ubuntu /bin/bash$ sudo docker attach client_setup
接下來,一旦有了容器內(nèi)的shell程序,我們就可以運行以下命令:
$ apt-get install curl
如果你看不見shell命令提示符,點擊鍵盤方向區(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的容器了。
第二個容器我們還是從之前的Ubuntu操作系統(tǒng)的安裝上獲得。但是這一次,我們將把它修改成一個運行了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)在我們就有了兩個鏡像了,分別是 client_img 和 server_img。
當(dāng)這些設(shè)置好后,我們就可以探索多種的容器間連接的可能性了。
Docker橋接Bridge
單個Docker容器是默認地與其他容器和外部網(wǎng)絡(luò)隔離的。Docker提供了bridge接口,名為docker0,這其實是在Docker Engine安裝時就建立好的。
它通過Docker的bridge接口可以讓容器間以及容器和主機之間進行通信。
我們可以通過下面的命令來查看一個位于Docker宿主機上的Docker bridge:
$ ifconfig docker0
你可以看到類似如下的輸出:
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)
新聞熱點
疑難解答
圖片精選