docker volume create
読む時間の目安: 2 分
説明
ボリュームを生成します。
API 1.21 以上
このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも
1.21
である必要があります。
クライアント上においてdocker version
コマンドを実行して、クライアントとデーモンの API バージョンを確認してください。
利用方法
$ docker volume create [オプション] [VOLUME]
追加説明
コンテナーが利用しデータ保存を行うボリュームを新規に生成します。 名前が指定されなかった場合、Docker がランダムな名前を生成します。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--driver , -d |
local |
ボリュームドライバー名を指定します。 |
--label |
ボリュームに対してメタデータを設定します。 | |
--name |
ボリューム名を指定します。 | |
--opt , -o |
ドライバー固有のオプションを設定します。 |
利用例
ボリュームを生成して、コンテナーがこれを利用できるように設定します。
$ docker volume create hello
hello
$ docker run -d -v hello:/world busybox ls /world
コンテナーの /world
ディレクトリ配下にマウントが生成されます。
コンテナーのマウントポイントに対して、相対パスの指定はサポートされていません。
1 つのボリュームを複数のコンテナーから同時に利用することができます。 2 つのコンテナーが共有データにアクセスする必要がある場合に便利です。 たとえば一方のコンテナーからデータを書き出し、他方がそのデータを読み取ることができます。
すべてのドライバーにわたって、ボリューム名はユニークであることが必要です。
つまり 2 つの異なるドライバーにおいて、同一のボリューム名を利用することはできません。
これを行った場合、docker
は以下のようなエラーを返します。
A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
("hello" というボリュームは "some-other" ドライバーにおいてすでに存在しています。別のボリューム名を用いてください。)
現在利用しているドライバーにおいて、すでに用いられているボリューム名を指定した場合、Docker はすでに存在しているものを再利用するものと解釈されるため、エラーとはなりません。
ドライバー固有のオプション
ボリュームドライバーによっては、ボリューム生成に関してカスタマイズ可能なオプションを持つものがあります。
ドライバーへオプションを受け渡すには -o
あるいは --opt
フラグを利用します。
$ docker volume create --driver fake \
--opt tardis=blue \
--opt timey=wimey \
foo
このようなオプション指定は、ボリュームドライバーに直接受け渡されます。 ボリュームドライバーが異なると、このオプションは全く違った(あるいは何の意味もなさない)ものになる場合があります。
Windows におけるビルトインドライバー local
は、オプションを一切受けつけません。
Linux でのビルトイン local
ドライバーは、Linux の mount
コマンドに似たオプションをとります。
複数のオプションを指定するには、--opt
フラグを複数用いて指定します。
mount
オプションの中には(o
オプションなどのように)、カンマ区切りリストを指定するものがあります。
mount オプションの全一覧については、こちら を参照してください。
たとえば以下のコマンドは foo
という名前の tmpfs
ボリュームを生成し、そのサイズを 100 MB、uid
を 1000 とするものです。
$ docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=100m,uid=1000 \
foo
以下は btrfs
を利用する別の例です。
$ docker volume create --driver local \
--opt type=btrfs \
--opt device=/dev/sda2 \
foo
さらに別の例として nfs
を利用し、192.168.1.1
から rw
モードにより /path/to/dir
をマウントします。
$ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo
上位コマンド
コマンド | 説明 |
---|---|
docker volume | ボリュームを管理します。 |
関連コマンド
コマンド | 説明 |
docker volume create | ボリュームを生成します。 |
docker volume inspect | 1 つのボリュームまたは複数のボリュームについての詳細情報を表示します。 |
docker volume ls | ボリュームを一覧表示します。 |
docker volume prune | 未使用のローカルボリュームを削除します。 |
docker volume rm | ボリュームを削除します。 |