首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker(33)- 如何修改 docker 容器的端口映射

Docker(33)- 如何修改 docker 容器的端口映射

作者头像
小菠萝测试笔记
发布2020-11-23 17:06:00
发布2020-11-23 17:06:00
2K00
代码可运行
举报
运行总次数:0
代码可运行

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

问题背景

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

当前是访问 9999 端口

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

删除容器

代码语言:javascript
代码运行次数:0
运行
复制
docker rm -f 容器ID/名字

重新创建容器

代码语言:javascript
代码运行次数:0
运行
复制
docker run -d -p 8888:8080 -i --name tomcat7 tomcat:7

重新指定需要映射的端口

优点

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

缺点

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

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

暂停 Docker 服务

代码语言:javascript
代码运行次数:0
运行
复制
systemctl stop docker

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

代码语言:javascript
代码运行次数:0
运行
复制
cd /var/lib/docker/containers/
ls

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

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

代码语言:javascript
代码运行次数:0
运行
复制
cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633
ls

修改 hostconfig.json

代码语言:javascript
代码运行次数:0
运行
复制
vim hostconfig.json
  • 输入 ,搜索映射的端口(9999)

/

  • 修改端口值就行了
  • 修改完后 退出并保存此文件

:wq

重新启动 Docker 服务

代码语言:javascript
代码运行次数:0
运行
复制
systemctl stop docker
docker start tomcat7
docker ps

访问 8888 端口没问题!

注意

config.v2.json

优点

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

缺点

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

使用 docker commit 命令

停止 Docker 容器

代码语言:javascript
代码运行次数:0
运行
复制
docker stop tomcat7

使用 commit 构建新镜像

代码语言:javascript
代码运行次数:0
运行
复制
docker commit tomcat7 new_tomcat7
docker images

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

代码语言:javascript
代码运行次数:0
运行
复制
docker run -d -p 8888:8080 -i --name tomcat77 new_tomcat7
docker ps 

修改新容器的名字

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

代码语言:javascript
代码运行次数:0
运行
复制
docker rm -f tomcat7
docker rename tomcat77 tomcat7
docker ps

优点

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

缺点

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

修改主机 iptables 端口映射

网上很多文章都有这个方法,但是我实操了一遍是不行的,不知道是不是步骤错了,哪位大佬知道可否说一声捏

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题背景
  • 删除原有容器,重新创建新的容器
    • 删除容器
    • 重新创建容器
    • 优点
    • 缺点
  • 修改容器配置文件(重点)
    • 暂停 Docker 服务
    • 进入 Docker 容器配置文件目录下
    • 进入某个容器的配置文件目录下
    • 修改 hostconfig.json
    • 重新启动 Docker 服务
    • 注意
    • 优点
    • 缺点
  • 使用 docker commit 命令
    • 停止 Docker 容器
    • 使用 commit 构建新镜像
    • 使用新镜像重新创建一个 Docker 容器
    • 修改新容器的名字
    • 优点
    • 缺点
  • 修改主机 iptables 端口映射
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档