docker volume lsコマンドの使い方(実例付)CE対応


 docker volume lsコマンドの使い方の紹介ページです。Docker CE ver17.12.1に対応しております。

 このコマンドは、Dockerホスト上に存在するデータボリュームの一覧を表示します。

 オプションで、出力内容のフィルターを指定することも可能です。

 dockerのデータボリュームにつきましては、別記事「Dockerのデータボリュームについてもう少し詳しい説明」をご参照ください。

 それでは以下で詳細に解説いたします。

 

docker volume lsコマンドのフォーマットとオプション

フォーマット

docker volume ls [オプション]

 

主なオプション一覧

-f, --filter=[] 
出力内容のフィルターとして、「dangling=<boolean>」「driver=<string>」「name=<string>」「label=<string>」が指定できます。

--format=[] 
出力フォーマットを指定する。

-q, --quiet
データボリューム名のみ表示する

■ 本記事の目次に戻る ■

docker volume lsコマンドの主な使い方

 

データボリュームの一覧を出力する

 まずは、以下のコマンドでデータボリュームtestvol01を作成します。

$ docker volume create testvol01

※「docker volume create」コマンドにつきましては別記事「docker volume createコマンドの使い方(実例付)」を参照下さい

 以下のコマンドでデータボリュームtestvol01が作成されていることを確認します。

$ docker volume ls

 Dockerホスト内に存在する全データボリュームが出力されます。

DRIVER  VOLUME NAME
local   testvol01

 他のデータボリュームが大量に出力される場合は、フィルターでデータボリューム名を指定すると見やすいです。

$ docker volume ls -f name=testvol01

以下のように、nameオプションで指定したキーワードを含むデータボリュームが出力されます。

DRIVER  VOLUME NAME
local   testvol01

 

フィルター「dangling」を指定して出力する

 docker volume lsコマンドは、以下のフィルターが利用可能です。

  • dangling
    コンテナで使用されている(参照されている)か否か
  • driver
    指定した文字を含むデータボリュームのドライバ(プラグイン)を使用しているものを出力する
  • name
    指定した文字を含むデータボリューム名のものを出力する

 前項でデータボリュームtestvol01を新規に作成した状態で、以下のコマンドを実行します。

$ docker volume ls -f dangling=true -f name=testvol01

 以下の通り、testvol01が出力されます。

DRIVER  VOLUME NAME
local   testvol01

 データボリュームtestvol01は作成したばかりで、どこからも利用されていないためです。

 ここで、以下のコマンドで、コンテナvmtestでデータボリュームtestvol01をアサインしてみます。

$ docker run -d -v testvol01:/opt --name=vmtest centos init

 この状態で以下のコマンドを実行します。

$ docker volume ls -f dangling=true -f name=testvol01

 以下の通り、testvol01は出力されなくなりました。

DRIVER  VOLUME NAME

 では、以下のコマンドで、コンテナvmtestを削除します。

$ docker stop vmtest
$ docker rm vmtest

 この状態で以下のコマンドを実行します。

$ docker volume ls -f dangling=true -f name=testvol01

 今度はデータボリュームtestvol01が出力されました。

DRIVER  VOLUME NAME
local   testvol01

 このように、danglingフィルターは、データボリュームがコンテナから使用されているか否かを判断する際に使用できます。

 

フィルター「driver」「name」及び「label」を指定して出力する

 driverフィルターを使用して、以下のコマンドを実行します。

$ docker volume ls -f driver=local

 localボリュームドライバを使用しているデータボリュームの一覧が出力されます。

 nameフィルターを使用して、以下のコマンドを実行します。

$ docker volume ls -f name=vol01

 文字列「vol01」を含む名前(例えば先ほど作成した「testvol01」)を使用しているデータボリュームの一覧が出力されます。

 labelフィルターを使用して、以下のコマンドを実行します。

$ docker volume ls -f label=testlabel

 文字列「testlabel」を含むラベルを使用しているデータボリュームの一覧が出力されます。

 ※ラベルは、docker volume createコマンドにて、データボリュームを作成する際に付与することができます。docker volume createコマンドは別記事「docker volume createコマンドの使い方(実例付)」をご参照ください。

 

出力内容のフォーマットを指定する

 デフォルトでは、ドライバ名とデータボリューム名が出力されますが、「--format」オプションを使用することで、出力内容をカスタマイズすることができます。

 「--format」オプションで指定可能なキーワードは以下のとおりです。

  • {{.Name}} データボリューム名
  • {{.Driver}} ドライバ名
  • {{.Scope}} スコープ名
  • {{.Mountpoint}} データボリュームの実領域の場所
  • {{.Labels}} 付与されている全ラベル
  • {{.Label "xxx"}} 指定したラベルの値

 例えば、<データボリューム名> : <ドライバ名> : <データボリュームの実領域の場所>のように出力させたい場合は、以下のコマンドを実行します。

$ docker volume ls --format "{{.Name}} : {{.Driver}} : {{.Mountpoint}}"

 結果は、以下のように出力されます。

testvol01 : local : /var/lib/docker/volumes/testvol01/_data
testvol03 : local : /var/lib/docker/volumes/testvol03/_data
testvol05 : local : /var/lib/docker/volumes/testvol05/_data

 

データボリューム名のみ出力する

 以下のコマンドを実行します。

$ docker volume ls -q

 結果は、データボリューム名のみ出力されます。

 これは、シェルスクリプトなどで、データボリュームの一覧を利用する場合に便利です。

 ちなみに、このコマンドは、前項の「--format」オプションを利用した以下のコマンドと同じ内容を出力します。

$ docker volume ls --format "{{.Name}}"

 

  以上でdocker volume lsコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。

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


コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください