2016-08-07 5 views
-1

container$ echo "abc" > /a.txt 
container$ cat a.txt 
abc 

私は/のファイルシステムタイプはnoneです気づい:

container$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
none   355G 19G 318G 6%/
tmpfs   1.9G  0 1.9G 0% /dev 
... 

inspectコマンドは、ボリュームがnullであることを示します。

host$ docker inspect <image> 
... 
"Volumes": null, 
... 

コンテナプロセスを終了して再起動した後、ファイルが消えました。私は理解したかった: 1)コンテナプロセスのルートファイルシステムは実際何であるか。 2)新しく作成したファイルを永続化するにはどうすればよいですか?

+0

ドッカーコミットが必要な場合https://docs.docker.com/engine/reference/commandline/commit/ – user2915097

+0

なぜ人々がこの質問をd​​ownvoteするのか分かりません... – Dagang

答えて

1

Q:コンテナプロセスを終了して再起動した後、ファイルが消えました。

A:ドッカーコンテナ内のデータは保持されません。つまり、そのコンテナが再起動されるとすべてが失われます。

Q:実際にコンテナプロセスのルートファイルシステムとは何ですか?
回答:本当にこの質問は理解できませんが、のユーザーのホームディレクトリはどこですか?そうであれば、rootのホームは/rootになります。

Q:新しく作成したファイルを永続化するにはどうすればよいですか?
A:コンテナを再起動しても変更を保存する場合は、ドッカーのdata volumeを使用する必要があります。

を参照してください:あなたは、コンテナを起動したときに https://docs.docker.com/engine/tutorials/dockervolumes/

は基本的に、あなたは、コンテナのディレクトリにホストのファイルシステムからディレクトリをマップしたいコンテナを伝えるために-vオプションで渡すことができます。以下の例のコマンドを実行している

$ docker run -d -P --name web -v $(pwd):/root

あなたは、コンテナの/rootディレクトリに現在の作業ディレクトリをマップしたいと思います。したがって、すべてがコンテナの/root/に書き込まれ、領域はホストのファイルシステムに反映され、永続化されます。

+0

@ダガーンはわかりませんなぜdownvoteも...しかし、これが役立つかどうか私に教えてください。 –

+0

"実際にコンテナプロセスのルートファイルシステムとは何か"は、 "df -h"を実行したとき、/ filesystemのタイプがnoneであることを示しています。だから、それはメモリ内のファイルシステムですか?またはホストファイルシステムのどこかにマップされたtmpファイルシステムです。 – Dagang

+0

@Dagang - そうです。正直言って私はどちらか分かりませんが、私はちょっとした研究をやろうとしましたが、どこにも行かなかったのです...コンテナに属しているデータが残っていないと言うその行動やドッカーの文書に基づいて、それはメモリ内ファイルシステムです。 –

関連する問題

 関連する問題