要修改Docker容器映射的端口,有几种不同的方法,具体取决于容器当前的状态。
这是最干净的方法,适用于大多数情况:
停止当前容器:
docker stop 容器名或ID
删除容器(数据会保留在卷中):
docker rm 容器名或ID
重新运行容器并指定新的端口映射:
docker run -d -p 新主机端口:容器端口 --name 容器名 镜像名
例如,将主机的8080映射到容器的80:
docker run -d -p 8080:80 --name mynginx nginx
停止容器:
docker stop 容器名或ID
提交容器为新镜像:
docker commit 容器名 新镜像名
用新镜像创建新容器并指定新端口:
docker run -d -p 新主机端口:容器端口 --name 新容器名 新镜像名
对于正在运行的容器,可以通过修改配置文件(不推荐,可能不稳定):
停止Docker服务:
sudo systemctl stop docker
编辑容器配置文件(路径可能不同):
sudo vim /var/lib/docker/containers/[容器ID]/hostconfig.json
修改PortBindings
部分
启动Docker服务:
sudo systemctl start docker
-v
参数挂载数据卷可以保持数据持久化netstat -tuln | grep 端口号
docker port 容器名或ID
或
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' 容器名或ID
希望这些方法能帮助您成功修改Docker容器的端口映射!