为已启动的docker容器添加端口映射

警告
本文最后更新于 2024-04-30,文中内容可能已过时。

找到要添加端口映射容器的配置文件,比如我这里给已经启动的 postgres 添加端口映射

image-20240430094825184

bash

docker inspect 容器ID |grep Id
docker inspect postgresql |grep Id

然后进入容器数据目录

bash

cd /data/docker/containers/ff157b7cdf5d335704a9790f8eec2cf31aeb1705dc8d327ace7cf0a8037b3c95

/data/docker为 docker 的数据目录

ff157b7cdf5d335704a9790f8eec2cf31aeb1705dc8d327ace7cf0a8037b3c95即上面获取到的container id

停止 docker 服务

bash

systemctl stop docker

备份配置文件,这里主要修改config.v2.jsonhostconfig.json文件,备份这两个就可以。

这里Docker容器暴露的端口已经存在了,所以不用修改config.v2.json

如果要添加其他没有暴露的端口,比如端口22,修改ExposedPorts

json

		"ExposedPorts": {
			"5432/tcp": {},
			"22/tcp": {}
		},

image-20240430100311256

修改hostconfig.jsonPortBindings

json

	"PortBindings": {
		"5432/tcp": [
			{
				"HostIp": "",
				"HostPort": "5432"
			}
		]
	},

image-20240430095636455

修改完成后启动 docker 服务

bash

systemctl start docker

相关内容