ようへいの日々精進XP

よかろうもん

docker rm で消すことが出来ない Ghost コンテナを丁重に葬る

はじめに

  • docker rm で消すことが出来ない Ghost コンテナを丁重に葬る手段の一つを試す
  • この方法が正しいかは解らない

参考


手順

Ghost になっているコンテナ ID を確認する

docker ps

また、以下のようにして詳細なコンテナ ID とコンテナのステータスも取得する。

sudo docker inspect ${container_ID} | jq '.[]|[.ID,.State]'

以下のように出力される。

f:id:inokara:20140203232201p:plain

Ghost になっているコンテナの config.json を確認する

上記の例の場合、以下のように確認する。

sudo cat /var/lib/docker/containers/bf2f2ada7e006bd0bc36e7e2ee0ac1a7e698d4bb91660e0b5581cc506bbe1cc9/config.json | jq '[.ID,.State.Running]'

f:id:inokara:20140203232815p:plain

.State.Runningtrue になっている...

/var/lib/docker/containers/${CONTAINER_ID}/config.json を修正する

sudo vim /var/lib/docker/containers/${CONTAINER_ID}/config.json

Running: trueRunning: 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 psconfig.jsonRunning:true を見てたのね
  • ちなみに、コンテナを Ghost の状態にするにはコンテナを起動した状態でホストのマシンを再起動する(どうでもいいけど)