这个其实是很不好改的。因为docker start
命令不支持绑定端口。
# run 支持-p , 以下命令ok
$ docker run -p 80:80 image
# docker start 不支持-p命令,固以下命令 not ok...
$ docker start -p 80:80 image
所以如果想改端口,比较优雅的做法是,将当前的容器commit为一个镜像。然后使用新的镜像启动容器,并绑定端口。
不要担心容器多了会不会浪费资源。不运行的容器只是占点磁盘空间。所以可以执行以下的命令。
# 停止正在运行的容器
$ docker stop test01
# 创建当前容器的镜像
$ docker commit test01 image01
# 运行一个新的容器,但基于原来的容器。
docker run -p 8080:8080 -td image01
以上,即可保证原有的数据,从而也达到了修改端口号的目的。
网上有一些其他手段修改hostconfig.json
,达到直接修改原有容器的目的。见这里