J.Wong
发布于 2024-02-21 / 29 阅读 / 0 评论 / 0 点赞

Docker修改未启动容器的配置信息

这里以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