2017-06-05 6 views
0

私は興味があります。ターゲットディレクトリが、ボリュームある場合List files in exited containerに、私のような、docker diff、しかしを使用することができます。dirのファイルもVOLUMEですか?

RUN mkdir /target 
VOLUME /target 

その後docker diffは何も表示されません。コンテナが出てから/targetが空のままになっていますか?退出したコンテナ内の/targetの内容を確認するにはどうすればよいですか?

+0

ホストOSとは何ですか? – Robert

+0

@Robert Ubuntu 16.04 –

答えて

0

docker diffこのコマンドは、コンテナファイルシステム上のファイルまたはディレクトリへの変更を検査するため、変更は表示されません。

データ量がユニオンファイルシステムをバイパスし、1つ以上の容器内に特別に指定されたディレクトリです:ドッカーのドキュメントを参照

ボリュームは、これです。

これは、docker diffがボリューム内で変更を表示しない理由を説明しています。

これは、コンテナの終了後に/ targetが空のままであることを意味しますか?

いいえデータボリュームは、コンテナが削除されても保持されます。

退出したコンテナ内のその/ターゲットの内容を確認するにはどうすればよいですか?

docker inspectコマンドを使用してコンテナボリュームを見つけることができます。

docker inspect container_name

出力はSourceは、ホストマシンにボリュームの位置を指定し、このようなものになります。

... 
"Mounts": [ 
    { 
     "Name": "fac362...80535", 
     "Source": "/var/lib/docker/volumes/fac362...80535/_data", 
     "Destination": "/webapp", 
     "Driver": "local", 
     "Mode": "", 
     "RW": true, 
     "Propagation": "" 
    } 
] 
... 

私はそれ音量行う前にMKDIR /ターゲットを実行します。この場合、このディレクトリの内容はどうなりますか?

以前に存在していた場合は、内容は新しい作成されたボリュームにコピーされます。したがって、ディレクトリをボリュームにすると、変更内容が失われることはありません。

+0

しかし、明示的に作成するので、 '/ target'はコンテナの内部に存在します。 –

+0

'/ target'はコンテナにありますが、ホストマシンの'/var/lib/docker/volumes ... 'にあるフォルダへのリンクです。 – kstromeiraos

+0

私はこの場所で作成したdirとどうなりますか? –

関連する問題