docker動態綁定端口


一、背景

在創建容器的時候,我們可以使用命令 docker container run -p host:container container-name 的方式來綁定端口,還可以使用docker-compose.yml文件來綁定端口。有時會有一個需求:在已經創建的容器上添加容器端口與主機端口的綁定,這時可以使用iptables命令來動態綁定端口,而不用重新創建容器。

二、使用iptables動態綁定端口

1、查看容器ip

docker inspect <container-name | id> | grep IPAddress

這一步后會輸出容器的ip地址,端口綁定時會使用。

2、端口綁定

sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport hostport -j DNAT --to-destination  containerip:port

舉個例子,使用命令

sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 9030 -j DNAT --to-destination  172.22.0.2:9090

將容器的9090端口和宿主機的9030端口綁定了起來,其中172.22.0.2是容器的ip地址。

3、保存規則

sudo iptables-save

4、查看動態綁定的端口

 docker port <container-name | id> 不能查看使用iptables綁定的端口,要使用命令 iptables -t nat -nvL | grep container-ip 來查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM