这里以nginx启动为例子,比如用docke run创建了一个nginx的容器,结果因为使用docker exec ** bash 修改了内部nginx的配置文件,导致nginx容器再也无法启动了,那这种情况该怎么办呢?
首先进入以下目录$ cd /var/lib/docker/overlay2 查找配置文件$ find ./ -name nginx.conf ./a45cd97113877fb480f66e0d982a594c7b18f2035c16e1f7eb687eef15552272/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/merged/etc/nginx/nginx.conf 然后cd到nginx.conf的所在目录$ cd ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx 比如我的nginx的配置文件是在conf.d文件夹下$ cd conf.d default.conf 观察里面的配置信息是不是自己nginx的配置信息,如果是的话那就修改它就行了,不是的话就看find查找出来的其他目录中用同样的方式去找就可以了$ vim *.conf 修改好配置文件后,直接启动比如我的nginx容器名是apg_nginx$ docker start apg_nginx |
---|
e.g. elasticsearch配置的修改
$ cd /var/lib/docker/overlay2 $ find ./ -name elasticsearch.yml $ vim ./4766064dd960399d85008016a0087ea5c39f8cdffa71a47d716f91ab5ab382cf/diff/usr/share/elasticsearch/config/elasticsearch.yml $ docker start elasticsearch |
---|