たまめ的生活記録

日々で思ったこととか、技術的なこととか。

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 オプションをつければプロセス終了と同時にコンテナも消えてくれるとのこと。
今度からこれを使っていこうと思います。

参考

qiita.com

48n.jp