コンピュータのクラッシュ後にDockerコンテナのファイルシステムにどのようにアクセスしますか?

コンピュータのクラッシュ後にDockerコンテナのファイルシステムにどのようにアクセスしますか?

私のコンピュータでDockerコンテナが実行されています。

停電によりコンピュータがクラッシュします。ディスクは正常に起動します。今何とかコンテナに入り、そこからデータを「救出」したいと思います。コンテナIDを知っています。

違いはわかりますが、/var/lib/docker/aufs/diff可能であれば、競合中にファイルシステム全体が必要です。

/var/lib/docker/aufs/mnt何も見えません。

を使用して別のドッカーを実行しようとすると、--with-volumes (ID)何も表示されません。

競合が発生している間に実際のデータを取得するにはどうすればよいですか?

答え1

これが「正しい方法」であるかどうかはわかりませんが、役に立ちました。

docker commit (ID of the crashed container)

これにより、競合が発生したコンテナで新しいイメージが作成され、対応するIDが提供されます。これで新しいイメージを実行できます。

docker run -ti (ID of the new image)

これで安全にデータを救出できます。

答え2

Googleで簡単に検索できるようにここに投稿します。もともと公開ここ

機能しないコンテナからコピーする最も簡単な方法はdocker cpです。

docker cp <container-name>:<path/inside/container> <path/on/host/>

ありがとうドッカーCP(協会)ファイルシステムの別の部分であるかのように、コンテナから直接コピーできます。たとえば、コンテナ内のすべてのファイルを復元するには、次の手順を実行します。

mkdir /tmp/container_temp
docker cp example_container:/ /tmp/container_temp/

再帰的にコピーするように指定する必要はありません。

関連情報