
我在 AWS Linux 上運行 Docker 1.12.6。
所有docker
命令都掛起。
今天早上AWS實例崩潰了(仍然不知道為什麼)。重新啟動不起作用,因此我停止並啟動了實例。當我查看時/var/log/docker
我得到:
time="2017-01-16T10:46:18.829402768Z" level=info msg="libcontainerd: new containerd process, pid: 21697"
time="2017-01-16T10:46:18.833508272Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/054f92393f757e0418b014ed1fa35673fbce2293de43e42153f4e10ec4910c77/state.json: no such file or directory"
容器目錄存在,但僅包含一個空init
目錄。對其他容器的隨機搜尋顯示了相同的情況。
我認為丟失的文件導致了掛起。我該如何恢復?
編輯:
最終刪除然後重新安裝,收到訊息:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
啟動了Docker服務,現在又掛了。
答案1
我解決了我的問題
- 服務泊塢窗戶停止
- 前往 /var/run/docker 並刪除與容器 id 相關的任何目錄
- 前往 /var/lib/docker 並刪除與容器 id 相關的所有目錄
- 服務 docker 啟動
答案2
@Moreno 的答案對我有用,但有一點小小的改變:
停止 docker 守護程式 (
sudo service docker stop
)刪除containerd中的資料夾(為了以防萬一,我們也直接在libconteinerd中刪除了同名資料夾(/var/run/docker/libcontainerd/containerd)
啟動 docker 守護程式
答案3
我遇到了同樣的問題。在花了相當多的時間處理這個問題後,我不得不回滾到舊的 AMI,直到我找到解決方案為止。最新的 ECS 代理程式 (1.13.1) 幾天前發布 - 我想知道這是否是我們的問題。
概述:
Docker 1.12.6
ECS Agent 1.13.1
實例啟動後,所有docker
命令都會掛起。檢查/var/log/docker
顯示:
level=info msg="libcontainerd: new containerd process, pid: 21687"
level=fatal msg="open /var/run/docker/libcontainerd/containerd/{{CONTAINER_HASH}}/state.json: no such file or directory"
同樣的問題,其中libcontainerd
包含一個空init
目錄(state.json
看不到!)
答案4
遇到同樣的問題。實例崩潰(原因未知)。 Docker 和 ECS 代理程式。重新安裝docker沒有幫助。
對我們有用的:
- 手動殺死docker(殺死pid)
- 刪除containerd中的資料夾(為了以防萬一,我們也直接在libconteinerd中刪除了同名資料夾(/var/run/docker/libcontainerd/containerd)
- 重啟docker
- 啟動ecs
在這裡看到: https://github.com/docker/docker/issues/30984
系統再次啟動並運作。