docker运行中的容器新增映射端口

前言

偶尔会遇到容器运行到一半,发现需要映射新的端口出来,比如跑了个lnmp服务的容器,没把3306映射出来,导致外部没办法通过navicate连接管理。这时可以通过修改容器的配置文件来新增端口,但是操作时必须临时关闭docker服务。

介绍

查看指定容器的容器Id:
bash 复制代码
docker inspect lnmp |grep Id
关闭docker容器和docker服务
bash 复制代码
docker stop lnmp
systemctl stop docker
得到容器Id:

"Id": "d5104ec757b667d5647c61645674574734666af4dc990989f78e99b7",

进入配置目录
bash 复制代码
cd /var/lib/docker/containers/d5104ec757b667d5647c61645674574734666af4dc990989f78e99b7
修改hostconfig.json,在PortBindings中添加"3306/tcp",意为绑定端口:
bash 复制代码
"PortBindings":{
	"3306/tcp":[{"HostIp":"","HostPort":"3306"}],
 	"80/tcp":[{"HostIp":"","HostPort":"80"}]
 }
修改config.v2.json文件,在ExposedPorts中添加3306,意为暴露端口:
bash 复制代码
"ExposedPorts":{"3306/tcp":{},"80/tcp":{}}
启动docker服务和docker容器:
bash 复制代码
systemctl start docker
docker start lnmp

测试

1.使用docker ps,查看容器的port一栏是否出现3306

2.不确定直接修改配置文件后重启docker服务,是否可以(较少停机时间)。

相关推荐
AI先驱体验官7 分钟前
数字人部署入门:轻量化方案与快速落地
大数据·运维·人工智能·深度学习·重构·aigc
m0_694845577 分钟前
WePY是什么?小程序组件化开发框架实战教程
服务器·docker·小程序·开源·github
晨枫阳9 分钟前
Jenkins 部署与问题解决
运维·jenkins
晨非辰10 分钟前
Git版本控制速成:提交三板斧/日志透视/远程同步15分钟精通,掌握历史回溯与多人协作安全模型
linux·运维·服务器·c++·人工智能·git·后端
夜星辰202312 分钟前
在服务器上使用 Docker,常用命令按功能分类整理
运维·服务器·docker
sofaraway1313 分钟前
未能下载 VS Code 服务器(Failed to fetch)解决办法
运维·服务器
迷海13 分钟前
docker命令大全
java·docker·eureka
小王C语言15 分钟前
【Ext系列文件系统】————磁盘、分盘/分区/分组、软硬连接
运维
默|笙17 分钟前
【Linux】进程信号(4)_信号捕捉_内核态与用户态
linux·运维·服务器
七夜zippoe18 分钟前
云原生Java应用部署:将Spring Boot应用迁移至Kubernetes完整指南
java·spring boot·docker·云原生·kuberbertes