修改已经创建的docker容器的端口映射

原始链接:https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container

对于已经创建的docker容器,如何修改映射的端口号呢?可以参考如下的操作步骤

0)  docker container list –all

结果中的CONTAINER ID列为容器id

1)  docker inspect <容器id>   |  grep Id

查看容器hash,<容器id>由步骤0)获得

2)  docker stop <容器id>

停止运行中的容器

3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,如果config.v2.json里面也记录了端口,也要修改)

编辑容器配置文件,<容器hash>由步骤1)获得

修改PortBindings参数配置,宿主机8001端口映射容器80端口示例:

“PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”

4) systemctl restart docker

重新启动docker引擎

5)docker start <容器id>

重新启动docker容器

 ——————————————————————————————————————————————

1) 停止容器
2) 停止docker服务(systemctl stop docker)
3) 修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)

cd /var/lib/docker/3b6ef264a040* #这里是CONTAINER ID
vi hostconfig.json
如果之前没有端口映射, 应该有这样的一段:
"PortBindings":{}
增加一个映射, 这样写:
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}
前一个数字是容器端口, 后一个是宿主机端口.
而修改现有端口映射更简单, 把端口号改掉就行.

4) 启动docker服务(systemctl start docker)
5) 启动容器

posted @   隐念笎  阅读(11708)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示