给正在运行的docker容器增加与宿主机映射的端口 - Go语言中文社区

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


在使用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!!!

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43220532/article/details/115954203
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-18 06:17:01
  • 阅读 ( 1187 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢