/ var/lib/docker/volumesフォルダーを調べたところ、次の行に沿ったコンテンツを持つconfig.jsonファイルを含むDocker UUIDという名前のフォルダーであふれていることがわかりました。
{"ID":"UUID","Path":"/path/to/mounted/volume","IsBindMount":true,"Writable":true}
どこ
/path/to/mounted/volume
は、ある時点で-vスイッチを使用してdockerコンテナーにマウントされたホスト上のフォルダーへのパスです。このようなフォルダーは、Dockerでの実験の開始時、つまり約3週間前に遡ります。
問題のコンテナは停止され、Dockerはかなり前にrm'edされたため、これらのエントリが販売期限を過ぎていないことはわかりません。これは疑問を投げかけます-残っているのはバグを見ているのですか、それとも/ var/lib/docker/volumesからそのようなエントリを手動で破棄する必要がありますか?
Docker 1.9以降では、ネイティブな方法があります。
すべての孤立ボリュームを一覧表示します
_$ docker volume ls -qf dangling=true
_
それらすべてを排除します
$ docker volume rm $(docker volume ls -qf dangling=true)
Dockerユーザーガイドから:
最初のdbdataコンテナー、または後続のコンテナーdb1とdb2を含む、ボリュームをマウントするコンテナーを削除しても、ボリュームは削除されません。ディスクからボリュームを削除するには、ボリュームへの参照を持つ最後のコンテナに対してdocker rm -vを明示的に呼び出す必要があります。これにより、コンテナ間でデータボリュームをアップグレードしたり、効果的に移行したりできます。 - ソース
これは、偶発的なデータ損失を防ぐための意図的な動作です。 docker-cleanup-volumes のようなツールを使用して、未使用のボリュームをクリーンアップできます。
Docker 1.13以降およびce/ee 17以降のリリース番号では、 volume Prune
コマンド を使用します
docker volume Prune
dangling=true
クエリとは異なり、これは「リモート」ドライバーベースのボリュームを削除しません。