前言:笔者在docker容器内(php运行环境)新增一个supervisor配置文件。在没有验证配置文件是否有效和无错误内容的情况下,不小心关掉了终端,直接退出容器!!😢
大家请务必记得重启supervisor验证配置文件有效性(supervisorctl update)
一、发现问题:
在准备重新进入docker容器内,发现container is not running
- 尝试重新 docker restart 容器 后,问题依旧。
- 好的吧,那我们通过docker ps -a(查看容器列表),发现该容器处于Exited(0)状态。那确认是容器内部发生错误导启动有效,却无法进入容器内部
-
我们通过docker logs 命令打印错误,再进行分析,发现就是supervisor配置问题导致容器无法正常开启,后面附上知识-- 如何查看docker容器日志
二、解决问题 :
在这里我根据网上的解决方案提供了2种方式,但是笔者第一种方式却无法找到对应的映射文件,使用第二种方式实现
(1)通过 docker inspect 命令,获取Mac本机中该容器的元信息。一般是在 GraphDriver->Data 获取到自己的容器所在位置
并找到你的错误配置and so on,修改后即可重新启动
(2) 通过docker cp 复制文件覆盖你的错误配置文件
1. 复制docker容器的文件到主机中(一般我们都能记住所修改到的文件,当然如果我们忘记了文件名,那就直接复制整个文件下到本地就Ok)
docker cp 容器id:docker容器中配置文件路径 主机路径
2. 修改配置文件中出错的地方
3. 将配置文件cp到docker容器
docker cp 主机文件路径 容器id:docker容器中配置文件路径
重启容器后,问题随机解决。当然,如果2个方法都无法解决,还有其他的解决方式,笔者在百度,google里还有找到了几种解决方式,大家可以自行搜索解决。