はじめに
docker rm
で消すことが出来ないGhost
コンテナを丁重に葬る手段の一つを試す- この方法が正しいかは解らない
参考
手順
Ghost になっているコンテナ ID を確認する
docker ps
また、以下のようにして詳細なコンテナ ID とコンテナのステータスも取得する。
sudo docker inspect ${container_ID} | jq '.[]|[.ID,.State]'
以下のように出力される。
Ghost になっているコンテナの config.json を確認する
上記の例の場合、以下のように確認する。
sudo cat /var/lib/docker/containers/bf2f2ada7e006bd0bc36e7e2ee0ac1a7e698d4bb91660e0b5581cc506bbe1cc9/config.json | jq '[.ID,.State.Running]'
.State.Running
が true
になっている...
/var/lib/docker/containers/${CONTAINER_ID}/config.json を修正する
sudo vim /var/lib/docker/containers/${CONTAINER_ID}/config.json
Running: true
を Running: false
に修正する。Ghost になってしまっているコンテナの数だけ作業を繰り返す。
docker を再起動する
sudo service docker stop sudo service docker start
Ghost になっているコンテナを削除する
for i in `docker ps -a -q` do sudo docker rm $i done
さいごに
- なるほどなるほど
docker ps
はconfig.json
のRunning:true
を見てたのね - ちなみに、コンテナを
Ghost
の状態にするにはコンテナを起動した状態でホストのマシンを再起動する(どうでもいいけど)