docker volume pruneコマンドの使い方(実例付)CE対応
docker volume pruneコマンドの使い方の紹介ページです。Docker CE ver17.12.1に対応しております。
このコマンドは、参照されていないデータボリュームの一括削除ができます。
dockerのデータボリュームにつきましては、別記事「Dockerのデータボリュームについてもう少し詳しい説明」をご参照ください。
それでは、以下で詳細に解説いたします。
本記事の目次
docker volume pruneコマンドのフォーマットとオプション
フォーマット
docker volume prune [オプション]
※このコマンドはDocker Engine Ver1.13から実装されました。
主なオプション一覧
-f, --force
参照されていないデータボリュームを確認なしで削除する
docker volume pruneコマンドの主な使い方
参照されていないデータボリュームを一括削除する
まずは、以下のコマンドでデータボリュームtestvol01を作成します。
$ docker volume create testvol01
※「docker volume create」コマンドにつきましては別記事「docker volume createコマンドの使い方(実例付)」を参照下さい
以下のコマンドでデータボリュームの存在確認を行います。
$ docker volume ls -f name=testvol01
※「docker volume ls」コマンドにつきましては別記事「docker volume lsコマンドの使い方(実例付)」を参照下さい
DRIVER VOLUME NAME local testvol01
この状態でdocker volume pruneコマンドを実行してみます。
$ docker volume prune
以下の通り、コンテナから使われていない全てのボリュームを削除する確認メッセージが表示されますので、「y」または「n」を入力します。
※実際に行う場合は、事前にバックアップを行うなど、十分注意の上行って下さい。
WARNING! This will remove all volumes not used by at least one container. Are you sure you want to continue? [y/N]
「y」を入力後Enterキーを押しますと処理を続行します。削除が完了しますと以下のようなメッセージが出力されます。
Deleted Volumes: testvol01 3a2baec2a45fb471eca30d1518ba43094fd6e8ada76cb4509e0abcf4165cec4a 6563f82bc6e9be7904c86eeb2361da525efd6ceff21d476dc5542b4c80041253 6ceeaf131a32571b6d478d9aad42ff467a4600789ff6557f0b653816f235ec78 (以下省略)
Dockerホスト内のどのコンテナからも参照されていないデータボリュームが全て削除されます。
以下のコマンドでデータボリュームの存在確認を行います。
$ docker volume ls -f name=testvol01 DRIVER VOLUME NAME
先ほどは存在していたtestvol01が削除されてます。
参照されていないデータボリュームを確認無しで一括削除する
以下のように「-f」オプション付きでdocker volume pruneを実行した場合は、削除処理を行うか否かの確認がありません。
※実際に行う場合は、事前にバックアップを行うなど、十分注意の上行って下さい。
$ docker volume prune -f
実行後ただちに削除処理が行われて、以下のメッセージが出力されました。
Deleted Volumes: testvol01 Total reclaimed space: 0 B
シェルスクリプトなどで削除処理を自動化する場合に便利ですね。
「docker volume prune」を使わないで参照されていないデータボリュームを削除する方法
docker volume lsとdocker volume rmを組み合わせることで、「docker volume prune」を使わないで参照されていないデータボリュームを削除することもできます。
※実際に行う場合は、事前にバックアップを行うなど、十分注意の上行って下さい。
以下のコマンドを実行します。
$ docker volume rm $(docker volume ls -qf dangling=true)
簡単に説明します。
まず、カッコ内の「docker volume ls -qf dangling=true」の部分で、docker volume lsコマンドを使用して、参照されていないデータボリュームの名前の一覧を取得します。
その一覧を入力元としまして、docker volume rmを実行して削除しています。
このコマンドを見ると、「docker volume prune」コマンドが何を行っているかご理解いただけると思います。
もし削除対象のデータボリュームが存在しない場合は、以下のエラーが出力されます。docker volume rmコマンドの引数が存在しないというエラーです。無視して大丈夫です。
"docker volume rm" requires at least 1 argument. See 'docker volume rm --help'. Usage: docker volume rm [OPTIONS] VOLUME [VOLUME...] [flags] Remove one or more volumes
※docker volume lsとdocker volume rmに関しましては、別記事「docker volume lsコマンドの使い方(実例付)」もしくは「docker volume rmコマンドの使い方(実例付)」をご覧ください。
以上でdocker volume pruneコマンドの紹介を終わります。
ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。
他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。
最後までお読みいただきありがとうございました。