在不重新创建容器的情况下如何修改容器端口映射
我们知道容器一旦create出来之后,如果想更改或者增加端口映射会非常麻烦,docker本身并没有提供命令用来更新容器的端口映射,如果我想加一个端口映射,该怎么做呢?
思路
docker容器启动会读取hostconfig.json和config.v2.json这两个配置文件,根据配置程序会修改iptables,启动容器。我们可以手动修改这两个文件,把端口映射加进去。
步骤
①停止容器:docker stop $(containerID)
②进入docker容器目录,修改hostconfig.json文件(路径一般为/var/lib/containers/$(hash_of_the_container)/hostconfig.json),在PortBindings这一节增加你需要增加的映射端口,示例如下(橙色为新增示例):
“PortBindings”:{“443/tcp”:[{“HostIp”:””,”HostPort”:”443″}],“80/tcp”:[{“HostIp”:””,”HostPort”:”83″}],”8080/tcp”:[{“HostIp”:””,”HostPort”:”9018″}]}
③进入docker容器目录,修改config.v2.json文件(路径一般为/var/lib/containers/$(hash_of_the_container)/config.v2.json),在ExposedPorts和Ports这一节增加你需要增加的映射端口,示例如下(橙色为新增示例):
“ExposedPorts”:{“443/tcp”:{},“80/tcp”:{},”8080/tcp”:{}}
“Ports”:{“443/tcp”:[{“HostIp”:”0.0.0.0″,”HostPort”:”443″}],“80/tcp”:[{“HostIp”:”0.0.0.0″,”HostPort”:”83″}],”8080/tcp”:[{“HostIp”:”0.0.0.0″,”HostPort”:”9018″}]}
④启动容器:docker start $(containerID)
浙公网安备 33010602011771号