docker为已启动的容器添加端口映射

文章讲述了如何在Docker容器启动前后添加或修改端口映射,包括对未启动容器的直接操作和对已启动容器的间接方法,以及如何查看、修改配置文件和重启服务以确保映射持久化。

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

docker为已启动的容器添加端口映射

容器未启动

如果你的容器还没有构建时,想添加端口映射时,你只需要在创建容器的时候添加 -p 参数,想添加几个端口映射就追加几个 -p 参数。类似于如下示例:

docker run -d --privileged --name kvpt \
--network kvptnet --network-alias kvpt \
-p 443:443 \
-p 81:80 \

容器已启动

方法一

但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射

docker stop A
docker commit A imageA #将容器commit提交成为一个镜像
docker rm A #删除原镜像
docker run -d -p 80:80 --name A imageA #启动新镜像

太麻烦了!!!

方法二
1、查看容器是否映射端口
# docker port [容器id 或 容器名]
docker port kvpt

有端口映射:

在这里插入图片描述

无端口映射:

在这里插入图片描述

2、查看容器完整Id
# docker inspect [容器id或容器名称] | grep Id
docker inspect kvpt | grep Id

在这里插入图片描述

3、进入docker容器目录查看
  • 可以使用以下命令查看配置文件的目录
#获取Docker守护程序的详细信息,包括正在运行的容器、镜像、网络等。
docker info | grep Root

在这里插入图片描述

配置文件位置/home/docker_store/docker/containers有的位置在/var/lib/docker/containers

  • 进入目录后,根据容器Id名,进入容器对应目录

在这里插入图片描述

  • 找到hostconfig.jsonconfig.v2.json配置文件,提前备份(或者复制到本地使用notepad++修改)

在这里插入图片描述

4、修改配置文件
  • 防止修改后重启容器映射端口被还原,需要先停止docker服务
systemctl stop docker

配置文件修改方法

  • hostconfig.json文件修改

在这里插入图片描述

json格式化

在这里插入图片描述

  • config.v2.json文件修改
    • 具体的映射关系需要在运行容器时通过-p参数来指定。

在这里插入图片描述

json格式化

"ExposedPorts"表示Docker容器暴露的端口。每个键值对表示一个端口映射。

在这里插入图片描述

"Ports"表示Docker容器内部监听的端口和它们映射到主机的端口。每个键值对表示一个端口映射,其中键是容器内部的端口号,值是一个包含主机IP和主机端口的对象数组。

**例如:**443/tcp: 映射到主机的IP地址为0.0.0.0和::,主机端口为443

在这里插入图片描述

5、重启docker服务
systemctl start docker
  • 查看容器是否启动
docker ps
  • 自己的容器没有启动时,手动启动即可
docker start [容器id或容器名称]

重启后可以先查看 hostconfig.jsonconfig.v2.json 两个配置文件是否是修改过后的

6、最后再查看端口号是否有映射
docker port [容器id 或 容器名称]

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值