Docker?link實(shí)現(xiàn)容器互聯(lián)的方式
1.1、容器間通過(guò)IP進(jìn)行網(wǎng)絡(luò)訪問(wèn)
新建兩個(gè)容器tomcat01和tomcat02
docker run -d -P --name tomcat01 tomcat docker run -d -P --name tomcat02 tomcat

使用 ifconfig 命令查看toncat01的網(wǎng)卡信息:

可以看到,tomcat01的IP地址為 172.17.0.2
再查看toncat02的網(wǎng)卡信息:

可以看到,tomcat02的IP地址為 172.17.03
測(cè)試容器tomcat01和tomcat02是否能ping通:
tomcat01 ping tomcat02:

tomcat02 ping tomcat01:

根據(jù)上面兩張圖所示,不管是tomcat01 ping tomcat02還是tomcat02 ping tomcat01都是可以ping通的。
注:如果容器內(nèi)沒(méi)有ifconfig命令和ping命令,依次執(zhí)行以下命令:
apt-get update apt install iputils-ping apt install net-tools
1.2、容器間通過(guò)容器名或容器id進(jìn)行網(wǎng)絡(luò)訪問(wèn)
容器間如果想通過(guò)容器名進(jìn)行網(wǎng)絡(luò)連接,需要使用 docker run --link 來(lái)鏈接兩個(gè)容器。
–link可以用來(lái)鏈接2個(gè)容器,使得源容器(被鏈接的容器)和接收容器(主動(dòng)去鏈接的容器)之間可以互相通信,并且接收容器可以獲取源容器的一些數(shù)據(jù),如源容器的環(huán)境變量。
–link 的格式
--link <name or id>:alias
–link 添加到另一個(gè)容器的鏈接
name和id是源容器的name和id,alias是源容器在link下的別名。
–link 的使用實(shí)例
創(chuàng)建容器tomcat03,讓tomcat03作為接收容器(主動(dòng)去鏈接的容器),上面的tomcat01(別名t1)作為源容器(被鏈接的容器),兩個(gè)容器進(jìn)行鏈接:
docker run -d -P --name tomcat03 --link tomcat01:t1 tomcat
tomcat01 是上面啟動(dòng)的 7b94f50c43ea 容器的名字,這里作為源容器,t1 是該容器在link下的別名(alias),通俗易懂的講,站在tomcat03容器的角度,tomcat01 和 t1 都是 7b94f50c43ea 容器的名字,并且作為容器的hostname,tomcat03 用這2個(gè)名字中的哪一個(gè)都可以訪問(wèn)到 7b94f50c43ea 容器并與之通信(docker通過(guò)DNS自動(dòng)解析)。
進(jìn)行鏈接測(cè)試:tomcat03 ping tomcat01
ping tomcat01

ping t1

兩個(gè)都能ping通,可見(jiàn),tomcat01 和 t1 都指向172.17.0.2。
但上面這種鏈接只是單向的,就是只能接收容器鏈接源容器,源容器不能鏈接到接收容器,也就是 tomcat03 鏈接上了 tomcat01,tomcat03能ping通tomcat01,tomcat01并沒(méi)有鏈接上tomcat03,tomcat01ping不同tomcat03。但是不影響tomcat01 通過(guò)IP ping tomcat03 或者tomcat03 ping tomcat01。
–link 原理
查看 tomcat03 的 hosts 文件,操作系統(tǒng)規(guī)定,在進(jìn)行DNS請(qǐng)求以前,先檢查系自己的hosts文件中是否有這個(gè)域名和IP的映射關(guān)系。如果有,則直接訪問(wèn)這個(gè)IP地址指定的網(wǎng)絡(luò)位置,如果沒(méi)有,再向已知的DNS服務(wù)器提出域名解析請(qǐng)求。
docker exec -it tomcat03 cat /etc/hosts

在tomcat03的hosts配置文件中,可以看到映射了tomcat01的IP、容器名、別名和容器id,所有tomcat03可以通過(guò)指定的容器名和tomcat01進(jìn)行通信。
–link 就是在接收容器(這里是名為tomcat003的容器)添加了一條關(guān)于tomcat01容器的名稱(chēng)解析。有了這個(gè)名稱(chēng)解析后就可以不使用ip來(lái)和源容器通信了,除此之外當(dāng)源容器重啟,docker會(huì)負(fù)責(zé)更新/etc/hosts文件,因此可以不用擔(dān)心容器重啟后IP地址發(fā)生了改變,解析無(wú)法生效的問(wèn)題。
到此這篇關(guān)于Docker link實(shí)現(xiàn)容器互聯(lián)的文章就介紹到這了,更多相關(guān)docker 容器互聯(lián)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信