GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Docker コンテナーをバックアップおよび復元する方法

この投稿では、docker Container のバックアップ (スナップショット) を取得して復元する手順の概要を説明しています。この投稿では、主にコンテナーをイメージとしてコミットする方法について説明していることに注意してください。これは、データ ボリュームを使用しないコンテナーで機能します。データ量のあるコンテナの場合、データ量のバックアップは別途取る必要があります。

Docker コンテナのバックアップ

1. 必要なコンテナーをイメージとしてコミットします

# docker commit -p [container-id] backup01
sha256:89682d4xxxxxx

これで、新しいイメージ backup01 が作成されます。これはデータ量をカバーしませんのでご注意ください。データ ボリューム (存在する場合) のバックアップを別途取る必要があります。

コンテナーのこのデータ ディレクトリ (データ ボリュームの場所) を知るには、コマンド「docker inspect container-name」を使用します '。 「マウント」というセクションが表示されます。 「ソース」に記載されている場所は、データ ボリュームです。このフォルダ (ここでは /site) を直接バックアップして、データ ボリュームのバックアップを取得できます。

"Mounts": [
{
"Source": "/site",
"Destination": "/usr/xx/xxx/xxxs",
"Mode": "",
"RW": true,
"Propagation": "rprivate"

2. 次のコマンドを使用して、イメージ backup01 を tar ファイルに保存できます:

# docker save -o backup01.tar backup01
# ls -al | grep back
-rw------- 1 root root 178697728 Mar 31 23:35 backup01.tar

tar ファイルを NFS マウント ポイントに保存することもできます。もう 1 つのオプションは、イメージ backup01 をローカル レジストリに直接プッシュすることです。バックアップ イメージをプッシュする前に、適切にタグ付けする必要があります。

# docker tag backup01 localhost:5000/backup-image:v1

この例では、localhost はローカル レジストリが配置されているホスト名であり、5000 はレジストリがリッスンするポート番号です。レジストリとは別のホストにある Docker エンジンで作業している場合は、正しいホストを指すようにホスト名を変更する必要があります。リポジトリとタグ名 (この例では backup-image:v1) が有効なタグであるためには、すべて小文字にする必要があることに注意してください。

# docker push backup-image:v1

Docker コンテナの復元

1. 次のコマンドを使用して、バックアップ tar ファイルからイメージを抽出できます

# docker load -i /tmp/backup01.tar
ff91b8b5abb1: Loading layer [==================================================>] 2.56 kB/2.56 kB
Loaded image: backup01:latest

docker run」を使用して、このイメージからコンテナを作成できます 」。元のコンテナーにデータ ボリュームがあった場合。データ ボリュームも復元し、データ ボリュームでコンテナーを実行する必要があります (docker run -v )

2. プッシュされた画像の場合。直接引くことができます。

# docker pull localhost:5000/backup-image:v1


Docker
  1. Dockerコンテナをエクスポートおよびインポートする方法

  2. LinuxでDockerコンテナを作成、一覧表示、削除する方法

  3. Pleskでバックアップを作成および復元する方法

  1. Dockerコンテナ間でデータを共有する方法

  2. Dockerコンテナを一覧表示する方法

  3. Dockerコンテナ内でアプリケーションをインストール、実行、削除する方法–パート2

  1. UbuntuでDockerをインストールしてDockerコンテナを実行する方法

  2. PostgreSQLでデータベースをバックアップおよび復元する方法

  3. Docker コンテナを一時停止および再開する方法