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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker(33)- 如何修改 docker 容器的端口映射

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

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

 

问题背景


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

  • 创建容器时,指定了端口映射(-p)
  • 如果容器运行之后发现端口需要改怎么办?

image.png


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

image.png

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

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

cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633

ls

image.png

修改 hostconfig.json

vim hostconfig.json

image.png

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

 

重新启动 Docker 服务

systemctl stop docker

docker start tomcat7

docker ps

image.png

访问 8888 端口没问题!

 

注意

 

优点

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

 

缺点

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

 

使用 docker commit 命令


停止 Docker 容器

docker stop tomcat7

 

使用 commit 构建新镜像

docker commit tomcat7 new_tomcat7

docker images

image.png

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

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

docker ps

image.png


修改新容器的名字

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

docker rm -f tomcat7

docker rename tomcat77 tomcat7

docker ps

image.png

优点

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

 

缺点

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

 

修改主机 iptables 端口映射


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


目录
打赏
0
0
0
0
44
分享
相关文章
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
287 93
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
344 15
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
218 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
78 17
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
135 12
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
341 78
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等