LoginSignup
1
0

【Docker】エラー「copy file range failed: no space left on device」の原因と解決方法

Posted at

概要

ローカル環境でテストのためにDockerコンテナ起動したり閉じたりを繰り返していたら、以下のエラーに。こちらの原因と解決方法を紹介します。

failed to solve: failed to copy files: copy file range failed: no space left on device

原因

デバイスにスペースがないよ、と言われていますね。

image.png

まずはDockerの利用状況を確認。

$ docker system df  
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          60        0         34.78GB   34.78GB (100%)
Containers      0         0         0B        0B
Local Volumes   11        0         1.211GB   1.211GB (100%)
Build Cache     565       0         20.95GB   20.95GB

Docker Desktopのextension「Desk usage」でも確認できます
(なぜかTotal Sizeにずれがあるけどタイムラグがあるのだろうか...updateしたら治りそう)

image.png

Dockerの上限は、ホストマシンのディスク容量にも依存しますので、まずはホストマシンのストレージ使用状況を確認(dockerデーモンでも制限設定はできるみたい)。

コマンドでも確認できますし、「システム情報」→「ストレージ」でも利用可能容量がわかります。
確認すると、、残り5.8GBしか使えない状態だった...

そもそもストレージが残りわずか、というのも、Dockerで不要なファイルが多く一気に増えていたからかも。

ということで、私は念の為DockerDesktopから目視で削除していきます。
めちゃたまってる...

image.png

上記のnoneと出ているものは明らかに不要だったので削除。
もう一度利用状況を確認すると、だいぶ減ったことがわかります。

$ docker system df  
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          39        0         15.46GB   15.46GB (100%)
Containers      0         0         0B        0B
Local Volumes   11        0         1.211GB   1.211GB (100%)
Build Cache     267       0         21.15GB   21.15GB

Macホストマシンのストレージをみても、利用可能容量が32GBになったことを確認。
この状態でdocker compose up -dを行うと、無事にイメージ作成ができました。

ビルドキャッシュも削除!

後に、ビルドキャッシュも削除しました。

$ docker builder prune
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N] y

ビルドキャッシュとは、Docker イメージのビルド時に作成される一時的なキャッシュのこと。これらがあることで、以前ビルドしたステップが迅速に実行されたり、コンテナイメージの再現性が確保されたり、色々メリットはあるらしい。とはいえ、今回の削除対象は「未参照("dangling")」のものであって、もう使われていないもの。

20GBもあったので、もういいや!と思って削除したのですが、その後にイメージ再作成などの操作を行うと、以前より遅いような...余計なものまで消してしまったのだろうか(結果7GBは残っているので使っているキャッシュは残っていそうなのですが)。気のせいだと祈ろう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0