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服务,是否可以(较少停机时间)。

相关推荐
阿拉斯攀登5 分钟前
第 13 篇 输入设备驱动(触摸屏 / 按键)开发详解,Linux input 子系统全解析
android·linux·运维·驱动开发·rk3568·瑞芯微·rk安卓驱动
ego.iblacat18 分钟前
Nginx 性能优化与深度监控
运维·nginx·性能优化
内网渗透27 分钟前
Komari 部署教程:无数据库、单文件、Docker 一键启动的监控工具
数据库·docker·容器·内网穿透·cpolar·远程办公·komari
新猿易码27 分钟前
Docker 安装 MySQL 5.7.44(Mac M4 适配版)
mysql·docker
新猿易码29 分钟前
mac(arm架构) 使用docker安装Tomcat 8 + JRE 8
docker·tomcat
bukeyiwanshui35 分钟前
【无标题】
linux·运维·服务器
疯狂吧小飞牛35 分钟前
Linux 多网卡同网段配置冲突问题
linux·运维·服务器
物联网全栈工程猪1 小时前
CAN 总线传输策略设计:基于 CAN ID 优先级竞争与本节点低优先级事件让步
运维·服务器·网络
J超会运1 小时前
OpenEuler系统Nginx性能优化全攻略
运维·nginx·性能优化
好好学习叭~1 小时前
将conda环境打包为docker镜像
docker·容器·conda