ダングリングステータスでイメージをフィルタリングする (Filter images by dangling status)
このステップでは、Docker イメージを「ダングリング (dangling)」ステータスに基づいてフィルタリングする方法を学びます。ダングリングイメージとは、タグ付けされたイメージとの関係がないレイヤーのことです。これらは、イメージの新しいバージョンを構築した結果、古いレイヤーにタグが付いていない場合に発生することがよくあります。これらのダングリングイメージはディスク容量を消費するため、クリーンアップできます。
イメージをダングリングステータスでフィルタリングするには、--filter
フラグを dangling
キーとともに使用します。値は、ダングリングイメージのみを表示する場合は true
、ダングリングでないイメージのみを表示する場合は false
になります。
まず、ダングリングイメージを作成しましょう。これを行うには、既存のイメージを置き換える新しいイメージを構築します。これには、簡単な Dockerfile を使用します。
~/project
ディレクトリに Dockerfile
という名前のファイルを作成し、次の内容を記述します。
FROM alpine
CMD ["echo", "Hello, world!"]
この Dockerfile は非常にシンプルです。alpine
イメージをベースとして使用し、コンテナがそこから実行されると "Hello, world!" と出力するだけです。
次に、この Dockerfile からイメージを構築し、タグを付けましょう。
次のコマンドを実行して、イメージを構築し、my-image:latest
としてタグ付けします。
docker build -t my-image:latest .
ビルドプロセスを示す出力が表示されます。
[+] Building
...
Successfully built <image_id>
Successfully tagged my-image:latest
次に、Dockerfile を少し変更し、同じタグで再度構築します。これにより、my-image:latest
タグを持つ新しいイメージが作成され、このタグを持っていた以前のイメージはダングリングになります。
~/project
ディレクトリの Dockerfile
を編集して、コマンドを変更します。
FROM alpine
CMD ["echo", "Hello again!"]
次に、同じタグでイメージを再度構築します。
docker build -t my-image:latest .
前のビルドと同様の出力が表示されますが、新しいイメージ ID が生成されます。my-image:latest
タグを持つ以前のイメージは、現在ダングリングしています。
すべてのイメージをリスト表示して、ダングリングイメージを確認しましょう。
次のコマンドを実行します。
docker images
REPOSITORY および TAG 列に <none>
が表示されているイメージが表示される場合があります。これはダングリングイメージです。
REPOSITORY TAG IMAGE ID CREATED SIZE
my-image latest <new_image_id> <created_time> <size>
<none> <none> <old_image_id> <created_time> <size>
hello-world latest <image_id> <created_time> <size>
次に、--filter dangling=true
フラグを使用して、ダングリングイメージのみを表示するようにフィルタリングします。
次のコマンドを実行します。
docker images --filter dangling=true
ダングリングイメージのみが表示されます。
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> <old_image_id> <created_time> <size>
ダングリングでないイメージのみを表示するには、--filter dangling=false
を使用します。
次のコマンドを実行します。
docker images --filter dangling=false
これにより、ダングリングでないすべてのイメージがリスト表示されます。
REPOSITORY TAG IMAGE ID CREATED SIZE
my-image latest <new_image_id> <created_time> <size>
hello-world latest <image_id> <created_time> <size>
これは、イメージをダングリングステータスに基づいてフィルタリングする方法を示しています。