不幸的是,通过DOCKER命令无法更改现有 RUNNING 容器的端口映射(从主机到容器的转发端口)!
因此,在镜像运行的时候或启动端口的时候,要谨慎操作。
通过修改配置文件修改端口
-
停止容器
docker stop <contanier ID>停止所有: docker stop $(docker ps -aq) 删除所有: docker rm $(docker ps -qa)
-
停止docker服务
systemctl stop docker -
找到容器文件
find / -name containers ## centos 7 ## 通常在:/var/lib/docker/containers/<container ID>/hostconfig.json中记录了端口 ## 修改它 vi /var/lib/docker/containers/<container ID>/hostconfig.json
"PortBindings": { "22/tcp": [ #代表 container 端口 { "HostIp": "", "HostPort": "222" #代表主机端口 }], "3000/tcp": [ #代表 container 端口 { "HostIp": "", # "HostPort": "3000" #代表主机端口 "HostPort": "3001" }] },
-
启动docker
systemctl start docker -
启动container
docker start <container ID>
参考链接:
https://ahelpme.com/software/docker/docker-change-the-port-mapping-of-an-existing-container/