未使用(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 はもはやコンテナにアタッチされていないからです。