道招

docker容器配置文件出错后重启容器失败解决方案

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

docker容器配置文件出错后重启容器失败解决方案

最近经常修改docker容器里面的东西,无意中重启发现容器立即就挂了。。。慌的一批,总不能直接重新新建吧,虽然是没什么,但是数据呢?

想直接使用docker exec -it container-name /bin/bash进入容器是不行,docker exec只能进入到启动中的容器,那怎么办?

既然是修改某个配置重启后就失败的,那代表我们的此次修改有问题,我们删掉我们的改动点就好了,我们应该怎么才能找到刚才修改的文件了呢。 我们修改文件自己一般是能记住当时修改的文件的大致路径或者文件名的吧

我们有下面两种方案来实现,下面以修改nginx.conf为例

方法一:直接在主机上修改容器内文件

在当前主机中存放了docker容器中的配置信息(一般默认目录是:/var/lib/docker/overlay/或者/var/lib/docker/overlay2/),那只要找到这个配置文件,修改后就可以重新启动了啊

cd /var/lib/docker/overlay2
find ./ -name nginx.conf // 搜索刚才改动的配置文件

file

vim ./193410bff207ea4dfbadca74ffde3d8ce4b0195c1966659a607858e4b34e975c/diff/etc/nginx/nginx.conf
docker start container-name

已经搜索到了,路径就是./193410bff207ea4dfbadca74ffde3d8ce4b0195c1966659a607858e4b34e975c/diff/etc/nginx/nginx.conf,我们直接修改该文件,把之前错误的改动还原就好了。 然后再启动容器就好了。

方法二:将容器内文件复制出来修改正确后再复制回去

容器虽然启动不了,但是我们仍然能用命令将里面的文件复制出来,或者复制进去的。 我们可以先把改动错误的文件复制出来

docker cp container-name:/etc/nginx/nginx.conf ./n.conf
vim ./n.conf // 改成正确的配置
docker cp ./n.conf container-name:/etc/nginx/nginx.conf
docker start container-name

大功告成了。

更新时间:
上一篇:使用next.js服务端渲染经历下一篇:CKEditor系列(五)编辑器内容的设置和获取过程

相关文章

dockerfile将挂载目录作为服务器目录

这里以作为nodejs根目录为例,并且用的pm2作为node的守护进程, FROM keymetrics/pm2:latest-alpine MAINTAINER shadowprompt ( 阅读更多…

docker运行WordPress报MySQL server has gong away

前几天在用docker安装wordpress,之前已经安装的有mysql,准备使用--link的方式让wordpress的容器访问之前的mysql的容器,但是总是一启动在浏览器里面访问就把容器给搞挂了 阅读更多…

wordpress上传图片失败解决方案

问题一:博客将 WordPress 升级后, 发现上传图片失败. 报错信息的大概意思是不能创建目录和上传文件, 因为上层目录没有写权限。 以下相关问题截图. 我的第一反应是修改目录的权限 阅读更多…

docker安装php nginx mysql容器化记录

建议第一步应该先安装mysql,因为后面的php很可能是需要连接mysql的,然后nginx是需要转发.php文件给php-fpm的 新建nginx的配置文件 /root/website/ngi 阅读更多…

关注道招网公众帐号
联系博主