docker 端口映射

本文详细介绍了如何使用Docker进行端口映射的添加和删除操作,包括获取容器IP,添加及删除转发规则的具体步骤。同时,针对非正常关闭容器导致的端口映射残留问题,提供了清理映射表的方法,确保新容器创建成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 添加端口映射

 
a, 获取容器ip  
    docker inspect $container_name | grep IPAddress
b. 添加转发规则  
    iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $docker_ip:$docker_port  

 

2. 删除端口映射

a. 获取规则编号  
    iptables -t nat -nL --line-number
b. 根据编号删除规则  
    iptables -t nat -D DOCKER $num

备注:此处“DOCKER"可以替换为table中对应的字段名称。

如果清除映射表,重新创建容器时仍然提示错误,则需要重启一下docker服务。

 

docker 容器非正常关闭/或者无法正常stop 、kill,本人遇到的情况是容器中存在了僵尸进程,可以尝试将这些进程kill掉之后再关闭容器/删除。关闭僵尸进程的方法,可以在宿主机上直接kill掉对应的进程。

这样非正常方式删除的容器,会在端口映射表(iptables)中存在残留,特别是你新启动的容器IP,端口与原来的一致,这样创建新的容器就不能成功。

需要按照上面的删除端口映射的方式,清楚一下映射。

再重新创建容器,OK。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值