经过一整天的摸索,答案:

没法直接修改。只能另外创建。

但是还好不用完全重头来,用docker commit命令可以基于当前修改的内容创建一个新的image。

执行docker 看看帮助先:

Commands:
   attach      Attach local standard input, output, and error streams to a running container
   build       Build an image from a Dockerfile
   commit      Create a new image from a container's changes

牛逼不,这是官方的标准解答。

另,要善用于 docker stop,docker rm,来间接调试docker run的参数指令,只到配置全部ok,但要切记,第一句指令,必须是docker commit,先把当前的docker一定要commit下来 ,别直接给rm了。

来,干货开始:

首先,要commit wiki为wikiimage 作为备份。

[root@it-1c2d ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f6d2092f6ba requarks/wiki:latest "docker-entrypoint.s…" 7 weeks ago Up 20 hours 3443/tcp, 0.0.0.0:8080->3000/tcp, :::8080->3000/tcp wiki
fdfc369cacfa mysql:latest "docker-entrypoint.s…" 7 weeks ago Up 8 days 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
[root@it-1c2d ~]# docker stop wiki-1c2d ~]# docker commit wiki wikiimage-1c2d ~]#

然后,docker run一个新的名字的container,诸如wiki2,端口号也改成8085,先测试,测试没问题了,就rm掉。

[root@it-1c2d ~]# docker run -d -p 8085:3000 --name wiki2 --restart unless-stopped -e "DB_TYPE=mysql" -e "DB_HOST=10.0.0.17" -e "DB_PORT=3306" -e "DB_USER=root" -e "DB_PASS=vegasd" -e "DB_NAME=wiki" wikiimage-1c2d ~]# docker stop wiki2-1c2d ~]# docker rm

最后,rm掉wiki,然后用正确的参数docker run,即可

[root@it-1c2d ~]# docker rm wiki-1c2d ~]# docker run -d -p 8080:3000 --name wiki --restart unless-stopped -e "DB_TYPE=mysql" -e "DB_HOST=10.0.0.17" -e "DB_PORT=3306" -e "DB_USER=root" -e "DB_PASS=vegasd" -e "DB_NAME=wikinew" wikiimage