不幸的是,通過DOCKER命令無法更改現有 RUNNING 容器的端口映射(從主機到容器的轉發端口)!
因此,在鏡像運行的時候或啟動端口的時候,要謹慎操作。
通過修改配置文件修改端口
-
停止容器
docker stop <contanier ID> -
停止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/