いくつかの大きなファイル(〜75GB)をコピーする必要があるDockerイメージを構築しようとしています。次のコマンドを実行すると、次のエラーが発生します。
$ docker build -t my-project .
Step 8/10 : COPY some-large-directory
failed to copy files: failed to copy directory: Error processing tar file(exit status 1): write /directory: no space left on device
このエラーは、コンテナーのスペースが不足していることが原因だと思います(Dockerの設定を使用して、Dockerのディスクイメージのサイズを160GBにすでに増やしています)。もしそうなら、どうすればmacOS(High Sierra)の最大コンテナサイズを増やすことができますか(デフォルトは100GBです)?
MacOSのdocker設定を使用してdockerが利用できるスペースを増やすと、最終的に問題が修正されました。
スペースを増やす方法の説明:
https://forums.docker.com/t/no-space-left-on-device-error/10894/26?u=adnan
タグの付いていないイメージと古いコンテナは、大量のスペースを占有する可能性があることに注意してください。
タグの付いていない画像を削除するには、次のコマンドを使用します。
_docker images
_(問題の範囲を確認するため)、次に
_docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
_
コンテナについても同様に、
docker rm -f $(docker ps -aq)
(これによりすべてのコンテナーが削除されるため、注意してください)
Dockerオブジェクトは時間の経過とともに蓄積されるため、使用量が多いと、最終的に使用可能なストレージを使い果たす可能性があります。これが docker system df の問題であることを確認できます。
docker system df
いくつかの例として、未使用のオブジェクトのPruneを実行することで、いくつかのスペースを再利用できます。
# Prune everything
docker system Prune
# Only Prune images
docker image Prune
未使用のDockerオブジェクトを削除する のドキュメントを最初に読んで、破棄する対象を確実に理解してください。
オブジェクトを破棄して本当に十分なスペースを取り戻すことができない場合は、常に より多くのディスクスペースを割り当てる を使用できます。