Docker 容器修改端口映射
前几天创建了一个 MySQL 容器,忘记了添加端口映射,今天恰好需要远程连接 MySQL,特此记录下添加端口映射的过程。
这种方式不需要重新创建容器即可快速修改完成,但需要能接受停止 Docker 服务,如果你的场景不能接受停止 Docker 服务,请寻找其他方式。
准备工作
系统:Ubuntu 24.04
首先,依次停止容器,停止 Docker 服务。
shell
docker stop mysql
shell
sudo systemctl stop docker
常见问题
如果执行后,提示如下警告:
Stopping 'docker.service', but its triggering units are still active:
docker.socket
则需要再执行如下命令:
shell
sudo systemctl stop docker.socket
添加端口映射
如果你没有更改 docker 工作目录,那么默认应该在 /var/lib/docker
目录下。
进入 containers
目录,找到对应容器的目录(容器 ID),打开 hostconfig.json
文件,找到 PortBindings
字段,添加如下内容:
json
"PortBindings":{"3306/tcp":[{"HostIp":"0.0.0.0","HostPort":"3306"}]}
保存并退出。
温馨提示
如果你的容器已经有端口映射,那么只需要在 PortBindings
字段中继续添加新的映射即可。
重启 Docker 服务
shell
sudo systemctl start docker
参考资料
- 追加docker已运行容器添加或修改端口映射方法:https://blog.csdn.net/jamesdodo/article/details/106770830