溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

docker中如何把容器連接起來

發(fā)布時間:2021-11-19 11:15:26 來源:億速云 閱讀:190 作者:小新 欄目:云計算

這篇文章將為大家詳細講解有關(guān)docker中如何把容器連接起來,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

docker官方的資料中提到用一個training/postgre鏡像啟動一個父容器,但是我的不知為啥,容器自己停掉了。我直接commit一個新的容器算了

在這里補充一下commit容器的做法:

先從image啟動容器:

docker run -t -i training/webapp /bin/bash

作為測試,我沒干什么修改,直接返回宿主機commit:

root@046a0ea81e8a:/opt/webapp# exit
exit

commit容器:

docker commit -m="Nothing to do" -a="Hochikong" 046a0ea81e8a newimage/webapp:v1

總之你記住之前的容器的ID,在commit時會用到。-m作為commit的信息補充,-a指定作者,后面的newimage/webapp是新的image名,v1是tag。

結(jié)果如下:

root@workgroup:~# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
newimage/webapp      v1                  7ef236b535c8        4 seconds ago       278.8 MB
webapp/ntpplus       v1                  18d60ce37ee5        41 hours ago        316.9 MB
hochikong/erbuntu    v1                  e3095ca4cf38        13 days ago         368.3 MB
dbehnke/ubuntu1404   latest              31c0939ea86c        5 weeks ago         368.3 MB
training/postgres    latest              258105bea10d        11 weeks ago        364.6 MB
training/webapp      latest              31fa814ba25a        12 weeks ago        278.8 MB

回到正題:

我們先創(chuàng)建一個基本容器(父容器):

docker中如何把容器連接起來

使用--name為容器命名(每個容器都的名字都必須是獨一無二的,不可重復)為base

再運行一個容器,命名為web,使用--link連接到base上,wbconc是這個連接的名稱,同時為了防止端口沖突,我用-p使主機的1000端口綁定到容器的5000端口上:

docker中如何把容器連接起來

我還運行了一個(玩玩),名為web2,連接名稱為wbconc2:

docker中如何把容器連接起來

查看我的容器狀態(tài):

docker中如何把容器連接起來

可以看到,在容器base的NAME一欄,多出web/wbconc和web2/wbconc2兩項,在"/"前的是子容器的名稱(即web和web2),后面的是這個連接的名稱(wbconc和webconc2),他們的父容器是base。

在這篇翻譯中,???http://www.widuu.com/chinese_docker/userguide/dockerlinks.html

有幾項錯誤和不太相同的地方,我使用nsenter連接容器,但是并沒有看到容器的hosts文件像原文所說的那樣被修改。問題就出現(xiàn)了。

我先獲取三個容器的Pid(本人不會JSON解析,直接用grep):

docker中如何把容器連接起來

docker中如何把容器連接起來

docker中如何把容器連接起來

用nsenter進入base容器(關(guān)于安裝nsenter,請參考我之前一篇博文):

docker中如何把容器連接起來

可以看到容器的IP地址,雖然ping是能ping得通其他容器,但是無法為他們設(shè)置hosts,蛋疼啊。有木有人能解決下這個問題,如果不行,需要DNS嗎?太麻煩了!

docker中如何把容器連接起來

hosts文件根本就沒有原文提到的內(nèi)容。不知它何來的hosts

關(guān)于“docker中如何把容器連接起來”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI