zoukankan      html  css  js  c++  java
  • Centos7 docker容器启动后添加端口映射

    docker容器启动后添加端口映射的两种方法:

    一、通过修改防火墙策略添加端口映射

    docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时,我们可以通过防火墙策略去映射端口,如下:

    iptables -t nat -A DOCKER -p tcp --dport 12580 -j DNAT --to 172.20.0.3:12580
    iptables -t nat -A POSTROUTING -p tcp -s 172.20.0.3 -d 172.20.0.3 --dport 12580 -j MASQUERADE
    iptables -A DOCKER -p tcp --dport 12580 -d 172.20.0.3 -j ACCEPT

    #172.20.0.3为容器IP

    #12580为新映射端口

    二、通过修改容器配置文件添加端口映射

    docker容器被创建后会在服务器上保存一个文件夹,配置文件也放在此处,解决方法就是找到映射段都得配置文件修改就行了。

      1、修改之前先停掉docker

    $ systemcel stop docker

      2、在 /var/lib/docker/containers/[容器ID]/下找到hostconfig.json

        找到映射IP的位置,复制一个已映射的IP,修改为自己需要的就好(888是我新增的)

    "PortBindings": {
        "888/tcp": [
          {
            "HostIp": "",
            "HostPort": "888"
          }
        ],
        "21/tcp": [
          {
            "HostIp": "",
            "HostPort": "21"
          }
        ]
    }

      3、相同的目录下找到config.v2.json

        该文件中有两处需要修改

    "ExposedPorts": {
      "888/tcp": {},
      "21/tcp": {}
    }
    "Ports": {
        "888/tcp": [
            {
              "HostIp": "0.0.0.0",
              "HostPort": "888"
            }
        ],
        "21/tcp": [
            {
              "HostIp": "0.0.0.0",
              "HostPort": "21"
            }
        ]
    }

    4、修改完之后启动docker

    $ systemctl start docker

    5、执行成功之后启动容器然后查看容器运行状态就可以看到新增加的端口在映射关系里已存在。

    6、同理也可以去除端口映射

    https://blog.csdn.net/lypeng_/article/details/98176138

    https://blog.csdn.net/u011241780/article/details/79457876

  • 相关阅读:
    Android中库项目、jar包等的使用方法
    rman 使用catalog备份的演示
    好端端的项目重新运行的时候却不行了!!!已解决
    动物:河蚌
    动物:田螺
    动物-鱼:鳖
    动物-鱼:鳝鱼
    动物-鱼:柳根鱼
    动物-鱼:泥鳅
    动物-鱼:刺鳅
  • 原文地址:https://www.cnblogs.com/yizhipanghu/p/11792800.html
Copyright © 2011-2022 走看看