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

相关推荐
data analyse 4565 小时前
页面卸载时埋点上报总丢失?sendBeacon 上报与补偿方案
大数据·运维·服务器·前端·数据库·人工智能·数据分析
倔强的石头1065 小时前
【Linux指南】进程通信系列(二):匿名管道 —— pipe 的本质、fork 继承与四种读写规则
java·linux·运维
硅基手札5 小时前
【Linux 内核专栏 18】进程间通信 IPC(下)— Socket·Netlink·fd 三件套·futex·线程同步
linux·运维·驱动开发·单片机·嵌入式硬件·mcu·架构
吴佳浩 Alben6 小时前
一文看懂大模型推理为什么需要多卡:从 TP、DP 到 Runtime 的完整演进
运维·服务器·人工智能·深度学习·语言模型·vllm·sglang
kaixin_啊啊6 小时前
飞牛部署Mtab完整实战:Docker安装、MySQL建库与固定地址访问
mysql·docker·容器
djjjx.6 小时前
Linux进程篇(二):深入浅出 [进程概念与进程父子关系]:从底层原理到实战应用
linux·运维·服务器
爱喝水的鱼丶8 小时前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
贵州诚鑫致达科技有限公司14 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
遇印记15 小时前
传输层,网络层
运维·服务器·网络·windows·学习
品牌常新16 小时前
景区巡逻机器人怎么选?派宝S5全地形守护解析
运维·人工智能·机器人