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 文件夹
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
以上就是关于 Docker 容器启动后怎么修改或添加端口的方法,纯属为个人经验,希望能给大家一个参考。
码云笔记 » Docker容器启动后修改或添加端口的方法