zoukankan      html  css  js  c++  java
  • 修改docker容器的端口映射

    大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。

    有没有办法不保存镜像而直接修改已有的这个容器呢?有。在stackoverflow上面找到答案了。

    方法一
    • 1、停止容器(docker stop d00254ce3af7)
    • 2、停止docker服务(systemctl stop docker)
    • 3、修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)
    cd /var/lib/docker/containers/d00254ce3af7*     #这里是CONTAINER ID
    
    vim hostconfig.json
    如果之前没有端口映射, 应该有这样的一段:
    "PortBindings":{}
    
    增加一个映射, 这样写:
    "PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}
    前一个数字是容器端口, 后一个是宿主机端口。将宿主机的60000端口映射到容器的8080端口
    而修改现有端口映射更简单, 把端口号改掉就行。
    • 4、启动docker服务(systemctl start docker)
    • 5、启动容器(docker start d00254ce3af7)

    hostconfig.json文件

    config.v2.json文件

    方法二

    1、获得容器IP
    container_name 换成实际环境中的容器名

    docker inspect `container_name` | grep IPAddress

    2、iptable转发端口
    将宿主机的60000端口映射到容器的8080端口

    iptables -t nat -A  DOCKER -p tcp --dport 60000 -j DNAT --to-destination 172.17.0.2:8080
    可惜不在西安,上班族可读名校成人本科,1年课程,快速取证
  • 相关阅读:
    jmeter结果分析
    JMeter分布式测试
    负载测试
    10.循环控制语句break_continue_pass
    9.控制流语句_for循环
    7.Python 循环语句
    8.控制流语句_while循环
    6.控制流语句_条件控制if
    5.运算符
    4.元祖_列表_字典
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/9928338.html
Copyright © 2011-2022 走看看