Docker の no space left on device:原因と解決策

冒頭まとめ no space left on device は Docker が判定した結果ではありません。書き込みを試みた先のファイルシステムが返した結果を、そのまま表示したものです。 したがって最初にやるべきことは、対処ではなくどこが満杯なのかの確定です。候補は3つあります。 1つ目はホスト上のデータ保存先です。既定では /var/lib/docker で、イメージ、コンテナ、ボリューム、構築のキャッシュ、そしてログがすべてここに集まります。 2つ目は Docker Desktop の仮想ディスクです。この場合、ホストのディスクに空きがあっても関係ありません。上限は設定で決まっており、その中が満杯になれば同じエラーになります。 3つ目はコンテナの中です。共有メモリ用の領域は既定で 64MiB しかなく、これを超える書き込みでも同じ文言が出ます。 そしてもう1つ、見落とされやすい前提があります。Docker には自動的に減る仕組みがほとんどありません。公式文書によれば、ログの上限は既定で無制限、ボリュームはデータ破壊を避けるため自動削除されません。放置すれば埋まるのは仕様どおりの挙動です。 エラーの概要 文言は操作によって前後が変わりますが、末尾は共通です。 # 構築時 ERROR: failed to solve: failed to create temp dir: mkdir /var/lib/docker/tmp/buildkit-mount123: no space left on device # 起動時 docker: Error response from daemon: mkdir /var/lib/docker/tmp/docker-builder553623694: no space left on device 読むべきはどの経路への書き込みで失敗したかです。/var/lib/docker 配下ならホストのデータ保存先、コンテナ内の経路ならコンテナ側の問題です。 使用量の全体像は専用のコマンドで確認できます。 $ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 15 3 21.71GB 18.17GB (83%) Containers 7 0 5.417kB 5.417kB (100%) Local Volumes 3 0 90.72MB 90.72MB (100%) Build Cache 295 0 20.77GB 20.77GB RECLAIMABLE の欄が、整理によって取り戻せる量です。どの種類が大きいかで、次にやることが決まります。 ...

2026年8月3日 · ErrorLog