前言:筆者在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裏還有找到了幾種解決方式,大家可以自行搜索解決。