以下是详细的攻略:
1. docker已启动容器添加端口映射的方法
在已启动的容器中添加端口映射,我们可以使用以下命令:
docker container update --publish-add [ip:][hostPort:]containerPort containerName/ID
其中,--[publish-add | p]表示添加映射,而[hostPort:]containerPort表示要添加的端口映射,hostPort可以省略,如果省略,则默认选择随机端口。
下面,我们开一个示例:
首先启动一个nginx容器并映射容器端口80到本地端口18080上:
docker run -d -p 18080:80 --name nginx-test nginx
然后我们再添加一个HTTPS端口443的端口映射:
docker container update --publish-add 443:443 nginx-test
这时通过命令docker ps可以看到端口映射已经添加成功,此时已有两个端口映射:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6c80007ade3 nginx "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:18080->80/tcp, 0.0.0.0:443->443/tcp nginx-test
2. docker已启动容器修改端口映射的方法
在已启动的容器中修改端口映射,我们也可以使用以下命令:
docker container update --publish-rm [ip:][hostPort:]containerPort --publish-add [ip:][hostPort:]containerPort containerName/ID
其中,--[publish-rm | P]表示删除已有的映射,--[publish-add | p]表示添加映射,而[hostPort:]containerPort表示端口映射。
假设现在我们要把容器端口80的映射从本地端口18080改成18081,从而让nginx在本地监听80和443以外的端口:
docker container update --publish-rm 18080:80 --publish-add 18081:80 nginx-test
执行命令后,可以通过docker ps命令看到端口映射已经修改成功,此时容器与本地的端口映射变为:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6c80007ade3 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:18081->80/tcp, 0.0.0.0:443->443/tcp nginx-test
这样就完成了容器端口映射的修改。
希望以上步骤能够帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker已启动容器修改添加端口映射的两种方法 - Python技术站