Dockerコンテナが立ち上がらない


Dockerコンテナがエラーで立ち上がらない

CIサーバ上でテスト実行時、ある日突然こんなエラーが出てコンテナが起動出来なくなっていた。

docker: Error response from daemon: devmapper: Thin Pool has 0 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior.

容量エラー

もしかして結構不要なイメージとかコンテナとか溜まってるのかな・・・と思ったわけで、一旦確認してみる。
一部省略してるけどこんな感じだった。

$ docker info
Containers: 
 Running: 5
 Paused: 0
 Stopped: 160
Images: 30
Storage Driver: devicemapper
 Data Space Used: 105.4 GB
 Data Space Total: 107.4 GB
 Data Space Available: 2.0 GB

不要なコンテナとイメージを削除する

停止中のコンテナを一括削除

$ docker rm $(docker ps -aq --filter status=exited)

不要なイメージを一括削除

$ docker rmi $(docker images -aq --filter dangling=true)

ゴミ掃除後にもう一度容量を確認する

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Storage Driver: devicemapper
 Data Space Used: 105.4 GB
 Data Space Total: 107.4 GB
 Data Space Available: 2.0 GB

変わらねえええええええええ!
サービスを再起動したり諸々試したけど何も変わらず。

結論

どうやらカーネル側のバグのようです。
https://github.com/docker/docker/issues/3182

解決方法

issueを見てもらうと分かる通り、遭遇した場合下記の方法で解消するようです・・・(これを解消と言っていいのか)。
- Dockerを一度アンインストールする
- /var/lib/dockerディレクトリ配下を全削除する

再現環境

最後に自分が遭遇した際の環境を晒しておきます。

$ docker -v
Docker version 1.11.2, build b9f10c9/1.11.2
$ uname -r
4.4.16-27.56.amzn1.x86_64