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対応版)(オリジナルな実例付き)」をご参照ください。

 最後までお読みいただきありがとうございました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です