すべての未使用ビルドキャッシュを削除する
このステップでは、すべての未使用ビルドキャッシュを削除する方法を学びます。ダングリングキャッシュを削除すると、どのイメージにも関連付けられていないレイヤーが削除されますが、すべての未使用キャッシュを削除すると、実行中のコンテナで現在使用されていない、またはローカルイメージによって参照されていないすべてのビルドキャッシュが削除されます。これは、ディスク容量を解放するためのより積極的な方法です。
まず、別の Dockerfile を使用して別のイメージを作成し、より多くのビルドキャッシュを追加しましょう。
もしまだ ~/project
ディレクトリにいない場合は、そのディレクトリに移動します。
cd ~/project
Dockerfile.another
という名前の新しい Dockerfile を作成します。
nano Dockerfile.another
Dockerfile.another
に以下の内容を追加します。
FROM alpine:latest
RUN apk update && apk add --no-cache git
COPY . /app2
WORKDIR /app2
CMD ["git", "--version"]
ファイルを保存し、nano エディターを終了します(Ctrl + X
を押し、次に Y
を押し、最後に Enter
を押します)。
この Dockerfile は alpine
ベースイメージを使用し、git
をインストールします。
次に、この新しい Dockerfile を使用してイメージをビルドします。anotherimage:latest
というタグを付けます。
docker build -t anotherimage:latest -f Dockerfile.another .
このビルドにより、この Dockerfile に固有の新しいビルドキャッシュレイヤーが作成されます。
すべての未使用ビルドキャッシュを削除するには、フィルターを指定せずに docker builder prune
コマンドを使用します。
docker builder prune -a
-a
フラグは "all" の意味で、ダングリングキャッシュだけでなく、すべての未使用ビルドキャッシュを削除することを示します。
操作を確認するように促されます。y
と入力して Enter
を押します。
WARNING! This will remove all unused build cache.
Are you sure you want to continue? [y/N] y
出力には、解放された容量が表示されます。このコマンドは、ローカルイメージまたは実行中のコンテナによって現在参照されていないすべてのビルドキャッシュレイヤーを削除します。これにより、特に多数のビルドやイメージ更新の後に、かなりのディスク容量を解放することができます。
すべての未使用キャッシュを削除すると、ローカルにまだ保存しているイメージの後続のビルドが、削除されたキャッシュレイヤーに依存している場合、時間がかかる可能性があることに注意してください。