docker volume createコマンドの使い方(実例で解説)

Docker
Docker公式ロゴ3a
©2020 Docker Inc. All rights reserved

 本記事はDocker ver19.03.10の環境で確認しています。

 このコマンドは、Dockerのデータボリュームを作成する際に使用します。

 作成したDockerのデータボリュームは、コンテナ起動時に指定することで、コンテナ内部から利用することが可能となります。

 また、コンテナが削除されても、Dockerのデータボリューム上の更新データは削除されません。

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

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

フォーマット

docker volume create [オプション] [データボリューム名]

主なオプション一覧

オプション概説
-d, --driver=""データボリューム用のボリュームドライバを
指定
--name=""このオプションでデータボリューム名を指定
することも可能
-o, -opt=[]データボリューム用のボリュームドライバに
固有のオプションを指定する場合に使用する
--label=[]データボリュームにメタデータとしてラベル
を付与する

コマンド例

$ docker volume create -d local testvol01

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

 以下で実例をまじえたコマンドの使い方を解説していきたいと思います。

実例では、Ubuntuの公式イメージにより起動したコンテナ(testvm)を使用します。

コンテナは「docker run -dit --init --name testvm ubuntu」で起動します。

※「--rm」オプションを付けておりませんので、ご利用後はコンテナ削除をお忘れなく。

基本事項の解説

 コンテナで利用可能なDockerのデータボリュームを作成します。

 通常では、コンテナ内でディレクトリやファイルを作成や更新しても、コンテナを削除してしまいますと、全て消えてしまいます。

 でも、Dockerのデータボリュームを明示的に作成して、その領域をコンテナで使用した場合、コンテナを削除してもデータボリューム内のファイルは消えません。

 コンテナ内で更新されるデータや動的コンテンツなどは、Dockerのデータボリューム内に作成した方が良いです。

 このコマンドは、DockerのクライアントとデーモンのAPIバージョンが1.21以上で使用可能です。

DockerのAPIバージョンはdocker verionコマンドで確認できます。dockerの19.03.10では、APIバージョンは1.40です。

新規にデータボリュームを作成する

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

 データボリュームはDockerホスト上に作成しますので、ボリュームドライバはlocalを使用します。

$ docker volume create -d local testvol01

 ボリュームドライバを指定しなかった場合は「local」が使われますので、「-d local」オプションは省略しても構いません。

 つまり、下のコマンドでも同じ結果になります。

$ docker volume create testvol01

 作成したデータボリュームは、コンテナ作成時に「-v」オプションで指定して使用します。

 試しに、testvol01データボリュームを使用してコンテナvmtestを起動してみます。「-v」でコンテナ内の「/opt/testvol」をマウントポイントとして使用します。

$ docker run -dit -v testvol01:/opt/testvol --init --name testvm ubuntu

 ベースイメージとしてCentOSイメージを使用しました。

 これで、vmtestコンテナ内の/opt/testvolマウントポイントにtestvol01がマウントされた状態でvmtestコンテナが起動されます。

 以下のコマンドで、/opt/testvolが存在することが確認できます。

$ docker exec -it testvm ls -l /opt

ボリュームドライバ固有のオプションの指定

 「-o」(もしくは--opt)オプションは、ボリュームドライバ固有のオプションを指定する場合に使用します。

 前項の例のdocker volume createコマンドでは、データボリュームの実領域はDockerホスト上に作成されます。

 この場合、通常に使用するぶんにはオプションを指定する必要はありません。

 固有のオプションを指定する場合としましては、外部ホスト上の領域をNFS経由で利用する場合があります。

 例えば、IPアドレスが192.168.1.1上の/vol01をrwモードでNFSを利用してデータボリュームをtestvol02として作成する場合は、以下のコマンドを実行します。

$ docker volume create --driver local -o type=nfs -o o=addr=192.168.1.1,rw -o device=:/vol01 testvol02

※このオプションはdocker engineのバージョンが1.13以上で利用可能です

データボリュームにラベルを指定する

 以下のコマンドを実行することで、データボリュームtestvol03に「testlabel=aaa」というラベルが付与されます。

$ docker volume create --label testlabel=aaa testvol03

 ラベルにてグルーピングすることで、データボリュームの一覧を表示する際などに便利になります。

おわりに

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

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

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

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

コメント

タイトルとURLをコピーしました