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年课程,快速取证
  • 相关阅读:
    maven父子项目
    编写简单的maven插件
    使用nexus搭建maven私服
    nexus安装
    Maven 配置tomcat和findbug插件(在eclipse建立的项目中)
    Maven打包时,不包含jar包
    pom文件解析
    android post(HTTP设置参数,仿html表单提交)
    在Eclipse中进行UI设计时xml界面横屏竖屏设置方法
    有声相机开发
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/9928338.html
Copyright © 2011-2022 走看看