2016-11-16 7 views
1

私はドッカーを使用しています。ホストファイルにコンテナファイルをマウントしようとすると、私は奇妙な動作をします。ドッカーファイルのマウントの理解

docker run -v /var/tmp/foo.txt:/var/tmp/foo.txt myapp 

上記のコマンドは、myappコンテナを実行し、コンテナ内の/ var/tmpディレクトリにfoo.txtファイルを作成します。 myappが終了したら、このファイルをホストに保存する必要があるので、私はマウントポイントを作成します。

私の問題は、ホスト上のファイルとしてfoo.txtを作成するのではなく、 "foo.txt"という名前の空のディレクトリで終わることです。

しかし、ホスト上に空のテキストファイルfoo.txtを作成し、再度myappを実行すると、期待通りに動作します。

私の質問は、ドッカーでファイルマウントを使用するときにコンテナを起動する前にホスト上にファイルを作成する必要があるかどうかです。

私は何かを逃したと思う。あなたの説明をありがとう。

+0

'docker run -v $(pwd):/ var/tmp myapp'のようなフォルダマウントを作成します。次に、コンテナ内の '/ var/tmp'にfoo.txtを作成すると、ホスト上の作業ディレクトリに保存されます。 – johnharris85

答えて

0

ホストボリュームをデータボリュームとしてマウントするには、ファイルが存在する必要があります。それ以外の場合、dockerはディレクトリを作成してマウントします。

から: - 代わりちょうどディレクトリの - ホストマシンからhttps://docs.docker.com/engine/tutorials/dockervolumes/

マウントホストファイルのデータ量

として-vフラグも1つのファイルをマウントするために使用することができます。

$ docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash 

ファイルがホスト上に存在しないことは決してありません。

コメントに示されているように、コンテナに書き込む場合は、ディレクトリをマウントする方がよいでしょう。

参考にする

関連する問題