新聞中心
概要
網(wǎng)上有許多人在查找關(guān)于容器啟動(dòng)后能否進(jìn)行端口映射的問(wèn)題。我曾經(jīng)也問(wèn)過(guò)度娘,很遺憾我沒(méi)找到。本文就這個(gè)問(wèn)題給出一個(gè)解決方法,旨在拋磚引玉。本文的思路是使用iptables的端口轉(zhuǎn)發(fā),這也是docker端口映射內(nèi)部的實(shí)現(xiàn)機(jī)制,只不過(guò)我是顯示地寫(xiě)出來(lái)罷了,為的就是讓查找這個(gè)問(wèn)題的人對(duì)docker的端口映射有一個(gè)直觀的了解。
結(jié)論:容器啟動(dòng)后是可以添加端口映射的,但不建議手工添加,最好使用docker提供的功能。
步驟
創(chuàng)建兩個(gè)容器并進(jìn)行了端口映射,結(jié)果如圖所示:
假如,我start一個(gè)容器,其內(nèi)部IP為172.17.0.5,并在容器內(nèi)部啟動(dòng)了80端口。
FORWARD規(guī)則鏈我們不用管它,docker已經(jīng)幫我們寫(xiě)好了,我們只需要關(guān)心NAT中的幾條鏈即可。
查看NAT表中的PREROUTING鏈
從上面可以看出,iptables將滿足條件的數(shù)據(jù)都轉(zhuǎn)發(fā)到了DOCKER鏈上去了。
查看NAT表中的DOCKER鏈
仿照上圖,我們添加一條自己的映射規(guī)則,將宿主的8082端口映射到172.17.0.5的80端口上去,規(guī)則如下:
iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 8082 -j DNAT --to-destination 172.17.0.5:80
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享名稱:docker容器啟動(dòng)后添加端口映射-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/shoes.html