Dockerのno Space Left on Deviceエラーでビルドできなくなった。
先日Docker buildを実行したところ、エラーが出てbuildできなくなりました。
色々調べてみたところ、no Space Left on Device
というエラー文を発見。
どうやらVMの容量を食いつぶしてしまっていたみたい。
原因
ぼくが使っていた環境だと、docker-compose up
するとPCのファンがガンガン回ってうるさかったので、ずっと docker-compose run
でコマンドを実行していました。
それが今回わかったんですが、docker-compose run
ってコンテナを新たに立ち上げちゃうみたいですね。完全に勉強不足(というかそもそも勉強していなかった)。
docker ps
してみるとここ半年で立ち上げられた山のようなDockerコンテナが。
同じようにdocker images
も悲惨なものでした。
対処
ぼくはDockerでは一つの環境しか使っていなかったので、コンテナとイメージを全部削除することにしました。
削除するコマンドはそれぞれ
docker rm <コンテナID>
docker rmi <イメージID>
ですが、山のようなコンテナをひとつずつ削除していくのは骨が折れるので、以下のコマンドで全部消しました(使っているのはbashです)。
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
これで無事ストレージが解放されてbuildできるようになりました。
runの対処
友達に聞いたところ、--rm
オプションをつければプロセス終了と同時にコンテナも消えてくれるとのこと。
今度からこれを使っていこうと思います。