直接解决方法
具体可参考Stack Overflow链接
docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务。具体可参考官网给出的守护程序解释
docker stop 容器id //CentOS下停止docker服务(Ubuntu类似) sudo systemctl stop docker
使用以下命令找到已创建容器的hostconfig.json和config.v2.json配置文件。
find / -name hostconfig.json //或config.v2.json
修改两个配置文件内的端口。
vi /var/lib/docker/containers/容器id/hostconfig.json //或config.v2.json
重启docker服务,重新运行容器即可看到端口映射修改。
sudo systemctl start docker docker start 容器id
间接解决办法
保存镜像或容器,再创建一个新的容器,在创建时指定新的端口映射。
docker load/save 镜像id docker import/export 容器id