zoukankan      html  css  js  c++  java
  • 测试开发CICD——Docker——如何修改 docker 容器的端口映射

    问题背景

    docker run -d -p 9999:8080 -i --name tomcat7 tomcat:7
    • 创建容器时,指定了端口映射(-p)
    • 如果容器运行之后发现端口需要改怎么办?

     

    当前是访问 9999 端口

    删除原有容器,重新创建新的容器

    删除容器

    docker rm -f 容器ID/名字

    重新创建容器

    docker run -d -p 8888:8080 -i --name tomcat7 tomcat:7

    重新指定需要映射的端口

    优点

    简单粗暴,在测试环境用的更多

    缺点

    如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了

    修改容器配置文件(重点)

    暂停 Docker 服务

    systemctl stop docker

    进入 Docker 容器配置文件目录下

    cd /var/lib/docker/containers/
    ls

    进入某个容器的配置文件目录下

    容器ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行

    cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633
    ls

    修改 hostconfig.json

    vim hostconfig.json

     

    • 输入 / ,搜索映射的端口(9999)
    • 修改端口值就行了
    • 修改完后 :wq 退出并保存此文件

    重新启动 Docker 服务

    systemctl stop docker
    docker start tomcat7
    docker ps

    访问 8888 端口没问题!

    注意

    优点

    直接操作配置文件没有副作用,算简单

    缺点

    需要暂停 Docker 服务,会影响其他正常运行的 Docker 容器

    使用 docker commit 命令

    停止 Docker 容器

    docker stop tomcat7

    使用 commit 构建新镜像

    docker commit tomcat7 new_tomcat7
    docker images

    使用新镜像重新创建一个 Docker 容器

    docker run -d -p 8888:8080 -i --name tomcat77 new_tomcat7
    docker ps 

    修改新容器的名字

    如果新容器想用回旧容器的名字,需要先删了旧容器,再改名

    docker rm -f tomcat7
    docker rename tomcat77 tomcat7
    docker ps

    优点

    • 无需停止 Docker 服务,不影响其他正在运行的容器
    • 旧容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响

    缺点

    需要生成新的镜像和容器,管理镜像和容器的时间成本会上升

  • 相关阅读:
    基于jQuery仿淘宝产品图片放大镜代码
    【家育通】 关于我们
    新房装修三大空鼓解决方法 为家居装修做好前奏
    MVC5+EF6 入门完整教程十一:细说MVC中仓储模式的应用
    MVC5+EF6 入门完整教程十
    MVC5+EF6 入门完整教程九
    MVC5+EF6 入门完整教程八
    MVC5+EF6 入门完整教程七
    MVC5+EF6 入门完整教程六
    MVC5+EF6 入门完整教程五
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15143286.html
Copyright © 2011-2022 走看看