zoukankan      html  css  js  c++  java
  • 添加、修改docker容器端口映射的方法

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

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

    方法一

    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

    方法二

    先停止容器、停止docker

    docker stop phpdev

    systemctl stop docker

    1、使用 docker ps -a 命令找到要修改容器的 CONTAINER ID

    2、运行 docker inspect 【CONTAINER ID】 | grep Id 命令

    3、执行 cd /var/lib/docker/containers 命令进入找到与 Id 相同的目录,如下图

    4、停止 docker 引擎服务,systemctl stop docker 或者 service docker stop

    5、进入对应 Id 所在目录后,如上图所示,修改 hostconfig.json 和 config.v2.json ---- vi hostconfig.json

       可以看到格式很乱,可以使用json美化工具查看具体信息。

    然后可以按照方框中所示,再添加一段类似的内容,比如新增一个 80 端口,在 PortBindings下边添加一下内容,端口配置之间用英文字符逗号隔开

    "80/tcp": [
    {
    "HostIp": "",
    "HostPort": "83"
    } 
    ]

     效果如下

    接着修改 vi config.v2.json

    找到 ExposedPorts 和 Ports 对应项,还是仿照原先的内容添加自己所需要的端口映射 

    ========================================================================

    ========================================================================

     效果如下:

    保存之后

    systemctl start docker ,

    docker start phpdev

    启动容器之后就可以看到新增的端口映射了。

    docker ps

    参考:

    https://blog.csdn.net/m0_37886429/article/details/82757116

    https://blog.csdn.net/u011241780/article/details/79457876?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control

  • 相关阅读:
    数据结构之c++感悟
    常见linux系统中RPM包的通用命名规则
    scripts
    http
    iscsi
    RHCE认证经典考题
    数据库
    配置空客户端邮件
    配置nfs服务
    Python版本的7大排序
  • 原文地址:https://www.cnblogs.com/guliang/p/14252109.html
Copyright © 2011-2022 走看看