测试开发CICD——Docker——如何修改 docker 容器的端口映射

问题背景

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

 测试开发CICD——Docker——如何修改 docker 容器的端口映射

当前是访问 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

测试开发CICD——Docker——如何修改 docker 容器的端口映射

 

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

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

cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633
ls

测试开发CICD——Docker——如何修改 docker 容器的端口映射

 

修改 hostconfig.json

vim hostconfig.json

 测试开发CICD——Docker——如何修改 docker 容器的端口映射

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

 

重新启动 Docker 服务

systemctl stop docker
docker start tomcat7
docker ps

测试开发CICD——Docker——如何修改 docker 容器的端口映射

测试开发CICD——Docker——如何修改 docker 容器的端口映射

访问 8888 端口没问题!

 

注意

 

优点

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

 

缺点

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

 

使用 docker commit 命令

停止 Docker 容器

docker stop tomcat7

 

使用 commit 构建新镜像

docker commit tomcat7 new_tomcat7
docker images

测试开发CICD——Docker——如何修改 docker 容器的端口映射

 

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

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

测试开发CICD——Docker——如何修改 docker 容器的端口映射

 

修改新容器的名字

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

docker rm -f tomcat7
docker rename tomcat77 tomcat7
docker ps

测试开发CICD——Docker——如何修改 docker 容器的端口映射

 

优点

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

 

缺点

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

 

上一篇:Android Studio删除Project


下一篇:测试开发CICD——Docker——如何修改 docker 容器的目录映射