dockerclient 查看端口占用_docker 端口被占用问题解决
啟動容器A, A的端口映射是 80:8080
外部的25000端口映射到服務(wù)內(nèi)部的8080端口;有時候?qū)⑷萜麝P(guān)閉,重新構(gòu)建鏡像及啟動容器時會出現(xiàn)一些報錯,
比如端口被占用的報錯,但通過docker ps -a |grep 容器名, 會發(fā)現(xiàn)容器其實已經(jīng)關(guān)閉,但仍然無法啟動新的容器
這里通過iptables 關(guān)閉docker映射到host上的端口
主機(jī)與docker中的端口轉(zhuǎn)發(fā)是通過主機(jī)的iptables實現(xiàn)的
iptables -t nat -nL --line-number |grep 80 , 列出nat表所有鏈的所有規(guī)則,
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 , 需要手工將之前的映射規(guī)則刪除掉
解決辦法:
iptables -t nat -D DOCKER 2 刪除chain docker中的第二條規(guī)則
總結(jié)
以上是生活随笔為你收集整理的dockerclient 查看端口占用_docker 端口被占用问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IT部门不应该是一个后勤部门
- 下一篇: jsonArray与 jsonObjec