人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

docker容器啟動后添加端口映射

發(fā)布日期:2022-04-02 18:12 | 文章來源:腳本之家

概要

網(wǎng)上有許多人在查找關(guān)于容器啟動后能否進(jìn)行端口映射的問題。我曾經(jīng)也問過度娘,很遺憾我沒找到。本文就這個問題給出一個解決方法,旨在拋磚引玉。本文的思路是使用iptables的端口轉(zhuǎn)發(fā),這也是docker端口映射內(nèi)部的實現(xiàn)機制,只不過我是顯示地寫出來罷了,為的就是讓查找這個問題的人對docker的端口映射有一個直觀的了解。

結(jié)論:容器啟動后是可以添加端口映射的,但不建議手工添加,最好使用docker提供的功能。

步驟

創(chuàng)建兩個容器并進(jìn)行了端口映射,結(jié)果如圖所示:

假如,我start一個容器,其內(nèi)部IP為172.17.0.5,并在容器內(nèi)部啟動了80端口。

FORWARD規(guī)則鏈我們不用管它,docker已經(jīng)幫我們寫好了,我們只需要關(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

查看NAT表中的POSTROUTING鏈

仿照上圖中的規(guī)則,書寫的規(guī)則如下:

iptables -t nat -A POSTROUTING -s 172.17.0.5/32 -d 172.17.0.5/32 -p tcp -m tcp --dport 80 -j MASQUERADE

查看FILTER表中的DOCKER鏈

仿照上圖書寫規(guī)則如下:

 iptables -t filter -A DOCKER -d 172.17.0.5/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT

結(jié)果

雖然IP為172.17.0.5的容器沒有開啟端口映射,如下圖所示:

但我們依然能夠通過訪問宿主機(192.168.78.238)的8082端口來訪問172.17.0.5的80端口,效果如下:

使用此方法有一個缺點,不能訪問localhost:8082,也就是說如果想對localhost也進(jìn)行轉(zhuǎn)發(fā),需要進(jìn)行額外的配置。

結(jié)論

建議大家不要像我這樣去做端口映射,我這么做只是為了闡述標(biāo)題。

如果大家在容器中添加了一些東西,并開啟了端口,同時呢,又想多復(fù)制幾個這樣的容器。建議大家把容器提交成鏡像,然后使用docker提供的端口映射功能。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部