您好,登錄后才能下訂單哦!
這篇文章主要介紹“docker容器啟動后如何添加端口映射”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“docker容器啟動后如何添加端口映射”文章能幫助大家解決問題。
結論:容器啟動后是可以添加端口映射的,但不建議手工添加,最好使用docker提供的功能。
步驟
創建兩個容器并進行了端口映射,結果如圖所示:
假如,我start一個容器,其內部ip為172.17.0.5,并在容器內部啟動了80端口。
forward規則鏈我們不用管它,docker已經幫我們寫好了,我們只需要關心nat中的幾條鏈即可。
查看nat表中的prerouting鏈
從上面可以看出,iptables將滿足條件的數據都轉發到了docker鏈上去了。
查看nat表中的docker鏈
仿照上圖,我們添加一條自己的映射規則,將宿主的8082端口映射到172.17.0.5的80端口上去,規則如下:
iptables -t nat -a docker ! -i docker0 -p tcp -m tcp --dport 8082 -j dnat --to-destination 172.17.0.5:80
查看nat表中的postrouting鏈
仿照上圖中的規則,書寫的規則如下:
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鏈
仿照上圖書寫規則如下:
iptables -t filter -a docker -d 172.17.0.5/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j accept
結果
雖然ip為172.17.0.5的容器沒有開啟端口映射,如下圖所示:
但我們依然能夠通過訪問宿主機(192.168.78.238)的8082端口來訪問172.17.0.5的80端口,效果如下:
使用此方法有一個缺點,不能訪問localhost:8082,也就是說如果想對localhost也進行轉發,需要進行額外的配置。
關于“docker容器啟動后如何添加端口映射”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。