Docker容器启动后修改或添加端口的方法

本文主要内容是关于 Docker 容器启动后如何修改或添加端口,希望对大家有帮助。

在 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 文件夹

Docker 容器启动后怎么修改或添加端口呢

4、在这里能看到已经创建的容器 id 文件夹

在 terminal 中输入docker ps -a查看需要修改的容器 ID:

查看需要修改的容器 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

修改 ExportPorts

8、重启 docker 服务

systemctl restart docker

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

docker inspect  CONTAINER ID

查看配置项

以上就是关于 Docker 容器启动后怎么修改或添加端口的方法,纯属为个人经验,希望能给大家一个参考。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Docker容器启动后修改或添加端口的方法

发表回复