Dockerコンテナデータをコピーしてバックアップする方法の詳細な説明

Dockerコンテナデータをコピーしてバックアップする方法の詳細な説明

ここでは、Jenkins コンテナを例に 3 つの方法を紹介します。

方法1

コンテナをイメージにパッケージ化します。これでデータがイメージ内に入ります。im:1.0 はコンテナ名です。任意の名前を使用できます。

docker commit <コンテナID> im:1.0

イメージを再実行します。-v はコンテナ内の tmp ディレクトリをホスト上の tmp ディレクトリにマップします。

docker run -itd -v /tmp:/tmp im:1.0 // 最初の tmp はホストディレクトリ、2 番目はコンテナ内のディレクトリです

ファイル /var/jenkins_home を tmp にコピーします。ここでのコンテナ名はランダムに生成され、docker ps | grep im:1.0 で表示できることに注意してください。これは対話型ターミナルです。

docker exec -it <コンテナ名> cp -r /var/jenkins_home /tmp // cp コピーして貼り付け

tmpディレクトリに入り、追加のjenkins_homeディレクトリがあるかどうかを確認します。

cd /tmp
ls

jenkins_home ディレクトリに入り、内容を home や srv などのディレクトリに移動します。tmp ディレクトリは一時的に保存されるため、次回 Linux を再起動すると削除され、データが永続化されます。

jenkins_home/ にディレクトリを作成します。
mv <ホーム/srv>

データがバックアップされた後、生成された余分なコンテナを削除する必要があることに注意してください。

docker stop <コンテナ名> && docker rm <コンテナ名>

方法2

公式ドキュメント

次のコマンドを実行します。<コンテナ名>は実行中のコンテナの名前、-vはマッピング、/tmp/backupディレクトリは任意に指定、cvfは圧縮、/var/jenkins_homeはバックアップするディレクトリです。

docker run --rm --volumes-from <コンテナ名> -v /tmp/backup:/backup ubuntu tar cvf /backup/backup.tar /var/jenkins_home

次に、バックアップ ディレクトリに入ると、上記の圧縮ファイルが表示されます。

cd tmp/バックアップ/
ls

解凍

tar xvf バックアップ.tar

解凍後、追加のvarファイルがあります。それを入力すると、jenkins_homeディレクトリが表示されます。内部の内容は、方法1でバックアップしたデータと同じです。mvコマンドを使用して、別のディレクトリに移動します。

cd var/jenkins_home
動画

最初の方法と比較して、--rm を使用すると、リソースのリサイクルについて心配する必要がありません。

方法3

3 番目の方法を試す前に、まず tmp ディレクトリに移動し、jenkins_home ディレクトリと backup ディレクトリを削除します。

rm -rf jenkins_home/ バックアップ/

コンテナIDを表示

docker ps | grep jenkins_im

コンテナのjenkins_homeディレクトリを現在のtmpディレクトリにコピーします。

docker cp <コンテナID>:var/jenkins_home /tmp/

tmpと入力してjenkins_homeがあるかどうかを確認します

cd tmp/
ls

jenkins_homeに入ると、前回のバックアップと同じデータが表示され、最後に同じ操作を実行してコンテンツを別のディレクトリに移動します。

動画

これで、docker コンテナデータのコピーとバックアップの方法についての記事は終了です。docker コンテナデータのコピーとバックアップの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • docker での psql データベースのバックアップとリカバリの詳細な説明
  • Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。
  • docker 環境でのデータベース バックアップ (postgresql、mysql) のサンプル コード
  • Linux システムをバックアップする docker コマンドの詳細な説明
  • Dockerコンテナを使用してプロキシ転送とデータバックアップを実装する方法
  • Docker におけるコンテナのバックアップ、リカバリ、移行の詳細な説明
  • Dockerデータのバックアップとリカバリプロセスの詳細な説明

<<:  WeChatアプレットのスクロールビューは、プルアップ時にデータの読み込みを重複させるソリューションを実装しています。

>>:  MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

推薦する

Windows 上の MySQL 5.6 で my.ini 設定ファイルを見つける方法

忘れてしまった場合に後で戻って確認できるようにメモしておいてください。問題の説明:今日はちょっとした...

Vueのフロントエンドシステムとフロントエンドとバックエンドの分離の詳細な説明

目次概要フロントエンド知識システムフロントエンドの3つの要素プレゼンテーション層 (CSS)動作レイ...

JavaScript 手ぶれ補正のケーススタディ

原理手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒...

Linux の chown コマンドと chmod コマンドの違いの詳細な説明

Linux システムでは、chmod コマンドと chown コマンドの両方を使用して権限を設定でき...

MySQL クエリ キャッシュのグラフィカルな説明

目次1. 原則の概要クエリキャッシュシステム変数1. クエリキャッシュを持つ2. クエリキャッシュ制...

Vue バッチ更新 DOM 実装手順

目次シーン紹介深い応答性トリガーゲッターDep.targetを探すゲッターセッター要約するシーン紹介...

Saltstack に Zabbix サービスをデプロイする方法を説明します

目次SaltstackがZabbixサービスを導入httpd、mysql、phpをインストールするh...

Linuxネットワーク構成ツールの使用

この記事では、RHEL8 のネットワーク サービスとネットワーク構成ツール、およびネットワーク ファ...

RGBカラーテーブルコレクション

RGBカラーテーブル色英語名RGB 16色雪255 250 250 #FFFAFAゴーストホワイト2...

MySQLはライブラリ内の主キーなしでテーブルインスタンスコードを素早く取得します

概要MySQL データベースで主キーのないテーブルを表示するための SQL ステートメントをいくつか...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

Docker nginx + https サブドメイン設定の詳細なチュートリアル

今日はたまたま友人のサーバーの移転を手伝うことになり、サーバーの基本的な設備の設定を行ったのですが、...

Vueはユーザー名が使用可能かどうかの検証を実装します

この記事では、ユーザー名が使用可能かどうかを確認するためのVueの具体的なコードを例として紹介します...

jQueryはテーブルのシームレスなスクロールを実現します

この記事の例では、テーブルのシームレスなスクロールを実現するためのjQueryの具体的なコードを参考...

Mysql varchar型の合計操作例

友人の中には、データベースについて学習しているときに、テーブル構造を作成するときに誤ってフィールドを...