Dockerボリュームをしばらく読もうとしていましたが、まだ何かが見当たりません。ユーザー指定の場所でボリュームを初期化する
このDockerfile
を取る:(ドキュメントから撮影)
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol
私が構築し、単にdocker run <img>
としてこれを実行すると、新しいボリュームが作成された(その名のdocker inspect <containerid>
を使用して見つけることができます)。 /var/lib/docker/volumes/<volumeid>
の内容は、greeting
のファイルは、期待通りにhello world
です。
これまでのところとても良いです。さて、私は、ユーザーとして、このボリュームをカスタムの場所に配置したいと考えていました。私はdocker run -v /host/path/:/myvol
を実行します。これはではなく、の作業はもう終了します。 /host/path
が作成されます(存在しない場合)。
Dockerfileのボリュームにいくつかのファイルを置くにはどうすればいいですか?ユーザーはこのボリュームをどこに置くかを選択できますか?これは私には、ボリュームディレクティブを最初に使用する理由の1つと思われます。
イメージの実行時にボリュームが作成されることを理解しています。ただし、-vオプションを使用しないと、ボリュームは実行時にビルド時に指定されたファイルに移入されます。私はVOLUME指令の背後にある理由を考えようとしていました。この時点で私が見ることのできる唯一のものは、ホスト上に保存されているイメージ/コンテナのいくつかのフォルダを永続化するのではなく、Dockerに伝えることです(ファイルは 'docker run )。デバッグの場合は?非常にニッチな用途に見えますので、何かが欠けているはずです。 –