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 ボリュームを削除します。