60

実行中の Docker コンテナーをバックアップすることはできますか? コマンドはexportそれを行うのに適していますか?

4

4 に答える 4

41

コメントで 1 人の友人によって投稿されました。

こんにちはスラバ、質問が閉じられて申し訳ありません。記録として、Slava は Linux コンテナーのランタイムである docker.io について話しています。はい、docker export適切なアプローチです。コンテナ ファイルシステム全体の状態の tarball を生成し、stdout にダンプします。そう

docker export $CONTAINER_ID > $CONTAINER_ID-backup.tar

使用可能な tarball が生成されます。tarball を再インポートすることができます

docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar

元のメタデータ (元の画像の ID など) が失われることに注意してください。これは、docker の将来のバージョンで修正される予定です。— ソロモン・ハイクス

ここに追加して、要約から質問が回答されたことを確認できるようにします。ありがとうソロモン!

于 2014-01-24T03:28:48.740 に答える
9

exportにはいくつかの制限があります。データ ボリュームはエクスポートされません。

データ量の意味は次のとおりです。

  1. VOLUMEイメージの Dockerfile に が定義されています。
  2. コンテナーは、次のようなパラメーターで開始されます。-v /webapp

データの詳細: https://docs.docker.com/userguide/dockervolumes/

この状況を処理する方法は、「--volumes-from」パラメーターを使用して新しいコンテナーを開始し、そのコンテナーをフックして、データ ボリュームにアクセスできるようにすることです。

例:

  1. データにアクセスします: (bash で)

docker run -it --volumes-from target_container ubuntu bash

  1. ホストへのバックアップ: (postgres コンテナー)

docker run -it --volumes-from some_postgres -v /host/path:/container/path --rm ubuntu bash -c "tar -cvf /container/path/postgres-backup.tar /var/lib/postgresql/data"

于 2015-01-26T07:04:52.550 に答える