当前位置: 代码网 > 服务器>服务器>云虚拟主机 > docker容器启动后如何修改或添加端口

docker容器启动后如何修改或添加端口

2024年05月14日 云虚拟主机 我要评论
在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,大家可能也会遇到需要继续添加2个或者3个端口进行映射的问题。一、通常间接的办法保存镜像,再创建一个新的容器,在创建时指定

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。

但是,大家可能也会遇到需要继续添加2个或者3个端口进行映射的问题。

一、通常间接的办法

保存镜像,再创建一个新的容器,在创建时指定多个端口映射。

1)停止docker容器

docker stop container01  

2)commit该docker容器

docker commit container01 new_image:tag

3)用前一步新生成的镜像重新起一个容器,其中1888是服务器的端口,8888是容器的端口

docker run --name container02 -p 1888:8888 new_image:tag

这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱。

二、修改文件端口,重启docker服务

1)停止docker(一定要先停止dokcer,不然直接修改配置文件不会生效)

systemctl stop docker

2)进入docker文件夹,找到容器的位置:

如果不是root用户查看的话,可能会出现权限不够的问题,可以通过chown更改文件夹权限,docker的默认文件夹应该是/var/lib/docker,这里我已经将默认文件夹的位置移动到了/sda1/docker/docker

sudo chown -r apr:user /sda1/docker/docker

其中,apr表示用户当前所在的用户组,user表示用户账户名称,可以使用groups user查看用户user所在的用户组

3)进入docker目录下的containner文件夹:

4)在这里能看到已经创建的容器id文件夹,在terminal中输入docker ps -a查看需要修改的容器id:

5)进入对应的容器文件夹:

6)先修改这个容器的hostconfig.json文件中的端口

如果之前没有端口映射, 应该有这样的一段:

“portbindings”:{}

增加一个映射, 这样写:

“portbindings”:{“8888/tcp”:[{“hostip”:””,“hostport”:“1888”}]}

前一个数字是容器端口, 后一个是宿主机端口。将宿主机的1888端口映射到容器的8888端口

如果增加多个,就是

“portbindings”:{“8888/tcp”:[{“hostip”:””,“hostport”:“1888”}],“6006/tcp”:[{“hostip”:””,“hostport”:“1006”}]}

将宿主机的1888和1006端口映射到容器的8888和6006端口

而修改现有端口映射更简单, 把端口号改掉就行。

7)如果config.v2.json里面也记录了端口,需要修改exportports

8)重启docker服务

systemctl restart docker

9)查看配置项已经修改成功

docker inspect  container id

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com