dockerclient 查看端口占用_docker 端口被占用问题解决

启动容器A, A的端口映射是 80:8080

外部的25000端口映射到服务内部的8080端口;有时候将容器关闭,重新构建镜像及启动容器时会出现一些报错,

比如端口被占用的报错,但通过docker ps -a |grep 容器名, 会发现容器其实已经关闭,但仍然无法启动新的容器

这里通过iptables 关闭docker映射到host上的端口

主机与docker中的端口转发是通过主机的iptables实现的

iptables -t nat -nL --line-number |grep 80 , 列出nat表所有链的所有规则,

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

MASQUERADE tcp -- 172.17.0.9 172.17.0.9 tcp dpt:8080

Chain DOCKER (2 references)

target prot opt source destination

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:8080

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.9:8080

这里说明外部的80端口映射给了两个容器的IP, 172.17.0.2 172.17.09 , 需要手工将之前的映射规则删除掉

解决办法:

iptables -t nat -D DOCKER 2 删除chain docker中的第二条规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值