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