今まで問題なくDockerコンテナを起動できていたのに、突如
Unable to mount using aufs
というエラーで起動できなくなった。調べてみるとこれは、AUFSでファイルシステムををスタックできる限界値に到達したかららしい。限界値は 42 らしい。
これを回避する方法はVersion 0.64の時点ではない。ワークアラウンドとして、exportコマンドでcontainerをtarに出力して、それをimportする。
例:
# kimh/aufs-limit というイメージがAUFSの限界に達したとする
# 一度aufs-limiitからコンテナを起動する
container_id=$(docker run -d kimh/aufs-limit /bin/bash -c "")
# tarにexportする
docker export $container_id > aufs-limit.tar
# tarからimportする
new_image_id=$(docker import - < aufs-limit.tar)
# 既存のイメージを削除する
docker rmi aufs-limitのImageID
# importしたイメージにtagをつける
docker tag $new_image_id kimh/aufu-limit
これでkimh/aufs-limitは元通りになるけどメタデータは失われてしまう。今のところはこれは避けられない。