zoukankan      html  css  js  c++  java
  • 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中的第二条规则
  • 相关阅读:
    PS初步学习经验心得记录
    css第四天--复合选择器和样式三大特性
    css第三天--盒子模型
    html第二天--表单控件和表格
    css第二天--字体属性和文本属性
    vue计算属性(computed)
    ant-input的使用
    js-split() 方法
    设计转到前端开发
    $set
  • 原文地址:https://www.cnblogs.com/yingchen/p/10113751.html
Copyright © 2011-2022 走看看