0


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

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

容器未启动

如果你的容器还没有构建时,想添加端口映射时,你只需要在创建容器的时候添加

-p

参数,想添加几个端口映射就追加几个

-p

参数。类似于如下示例:

docker run -d--privileged--name kvpt \--network kvptnet --network-alias kvpt \-p443:443 \-p81:80 \

容器已启动

方法一

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

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

太麻烦了!!!

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

有端口映射:

在这里插入图片描述

无端口映射:

在这里插入图片描述

2、查看容器完整Id
# docker inspect [容器id或容器名称] | grep Iddocker 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
  • 查看容器是否启动
dockerps
  • 自己的容器没有启动时,手动启动即可
docker start [容器id或容器名称]

重启后可以先查看

hostconfig.json

config.v2.json

两个配置文件是否是修改过后的

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

在这里插入图片描述

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/weixin_41148525/article/details/135675015
版权归原作者 丨Geek丨 所有, 如有侵权,请联系我们删除。

“docker为已启动的容器添加端口映射”的评论:

还没有评论