2016-07-11 8 views
6

ドッカーファイルでVOLUMEを使用すると、匿名のボリュームが作成されます。 dockerfileから名前付きボリュームを作成する方法はありますか?私はDockerfileで名前付きボリュームを宣言するにはどうすればいいですか?

docker run -v my-named-volume:/mnt/something repo/my-img 

私はDockerfileを経由して取得するために管理しているすべてのDockerfile相当を探しています

は、私はそれだけでサポートされていないと思うだろう

docker run -v /mnt/something repo/my-img 

のと同じです。しかし、the docはこの

VOLUME命令は指定された名前でマウントポイントを作成し、ネイティブホストまたは他の容器から外部にマウントされたボリュームを保持しているとしてそれをマーク言います。

ボリュームに名前を付ける方法があることを示唆しているようだが、それはそれは不可能ですか

+2

短い答え、これはできません*設計上*理由を理解するのに役立つ[this](https://github.com/moby/moby/issues/30647#issuecomment-276882545)の記事があります – ira

答えて

2

言っていません。私はドキュメントが多分誤解を招くかもしれないと言われていると思います。

3

少し不明です。その名前を使用してマウントポイントが作成されますが、実際のファイルパスではその名前は使用されません。 docker inspect {container-name}を実行すると、"Destination": "/mnt/something",のような名前が表示され、実際の場所は"Source": "/var/lib/docker/volumes/cb80c7802244dd3669eed8afb7d94b61366844d80677eb180fa12002db04ea7c/_data",となります。

これは、Dockerfileが特定のホストに関連付けられておらず、ホストボリュームパスが存在しないことを確認できないためです。 run(または同等の)声明でそれを行う必要があります。スクリプトやそのような情報でその情報を使用する必要がある場合は、apiまたはdocker inspectを使用して、コンテナが作成された後のボリュームの場所を確認できます。

Dockerfileでボリュームを宣言すると、データが保持され、その場所がプリセットされていなくてもホストで使用できるようになります。

関連する問題