给正在运行的docker容器增加与宿主机映射的端口

当在使用Docker容器时忘记映射端口,可以不用重新启动新容器。通过更新现有容器配置,包括修改`hostconfig.json`和`config.v2.json`文件,增加端口映射信息,然后重启Docker服务,即可实现端口映射到宿主机,而无需保存和创建新镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用docker容器时,有时会遇到这样的问题:执行运行容器命令的时候没有映射与宿主机对应的端口,但后来发现需要映射端口到宿主机,怎么办呢?

首先比校简单粗暴的方法是保存容器为镜像,重新运行一个新的容器把端口给映射出来。

这里介绍下不用重新启动一个新的容器就可以把需要的端口映射出来的方法:

1,首先执行:

$ sudo docker update 容器名称1/容器ID1 容器名称2/容器ID2 ...  --restart=always

将所有的已经启动的容器都执行这条命令,因为第二步要停止docker服务,执行这些命令就确保再启用docker服务时所有的容器会自启动,如果你很明确目前正在运行的容器在启动时候已经使用了–restart=always,那么不执行这条命令也可以

2,停用docker服务

$ systemctl stop docker

3,进入你要增加映射端口的容器文件夹,默认路径为/var/lib/docker/containers/,先到root用户下,不然没有权限访问

$ su root 
$ cd /var/lib/docker/containers/
$ ls
$

执行到这一步时,你会看到如下内容:

在这里插入图片描述
找到要增加映射端口的容器的ID,进入目录,一般有如下内容:
在这里插入图片描述
4,在上述文件夹下修改所对应的配置文件

首先修改hostconfig.json文件,打开该文件:

在这里插入图片描述
在"PortBindings"位置中增加类似于"917/tcp":[{“HostIp”:"",“HostPort”:“917”}] 这种格式的内容,将917改为你所需要的端口号,注意格式要写对,改完保存退出。

然后修改config.v2.json文件,打开该文件:

在这里插入图片描述
在"ExposedPorts"位置中增加类似于"917/tcp":{}这种格式的内容,将917改为你所需要的端口号,注意格式要写对,改完保存退出。

5,重启docker服务

$ systemctl start docker

Done!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrystalheartLi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值