未使用 (dangling) 状態でボリュームをフィルタリングする
このステップでは、Docker ボリュームを「未使用 (dangling)」状態に基づいてフィルタリングする方法を学びます。未使用ボリュームとは、現在どのコンテナにもアタッチされていないボリュームのことです。これらのボリュームは不必要にディスク領域を消費することがあります。
未使用ボリュームをフィルタリングするには、--filter dangling=true
フラグを使用します。
まず、コンテナを作成し、ボリュームの 1 つをそれにアタッチしましょう。ubuntu
イメージを使用します。ubuntu
イメージがローカルにない場合、Docker は自動的にそれを取得します。
docker run -d --name mycontainer -v myvolume:/app ubuntu sleep 3600
このコマンドは、デタッチドモード (-d
) で mycontainer
という名前のコンテナを実行し、myvolume
をコンテナ内の /app
ディレクトリにマウント (-v myvolume:/app
) し、ubuntu
イメージを使用し、コンテナを 1 時間実行し続けます (sleep 3600
)。
次に、再びすべてのボリュームをリストしましょう。
docker volume ls
myvolume
と another_volume
の両方が表示されます。myvolume
は現在 mycontainer
で使用されています。another_volume
はどのコンテナにもアタッチされていないため、未使用ボリュームです。
では、未使用ボリュームをフィルタリングしましょう。
docker volume ls --filter dangling=true
出力には another_volume
が表示されるはずです。なぜなら、このボリュームは実行中のコンテナにアタッチされていないからです。
未使用ではないボリューム(つまり、コンテナにアタッチされているボリューム)を表示するには、--filter dangling=false
を使用できます。
docker volume ls --filter dangling=false
これにより myvolume
が表示されるはずです。
最後に、作成したコンテナを停止して削除しましょう。
docker stop mycontainer
docker rm mycontainer
ここで、再び未使用ボリュームをリストすると、
docker volume ls --filter dangling=true
myvolume
と another_volume
の両方が未使用として表示されるはずです。なぜなら、myvolume
はもはやコンテナにアタッチされていないからです。