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 の使用

ブログ    

推薦する

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

計算プロパティとリスナーの詳細

目次1. 計算されたプロパティ1.1 基本的な例1.2 計算プロパティキャッシュとメソッド1.3 計...

フロントエンド制作に関する簡単な議論: 互換性のために IE6 はまだ必要ですか?

国内市場ではIE6~7のサポートに対する一定の需要がまだありますが、フロントエンド開発者として、私た...

dockerエラーの原因分析 終了しました (1) 4分前

Dockerエラー1. 原因を確認するdocker ログ ネクサス2. エラーの原因OpenJDK ...

テーブルパーティションとパーティション分割とは何ですか?MySqlデータベースパーティションとテーブルパーティション分割方法

1. テーブルとパーティションを分割する必要があるのはなぜですか?日常の開発では、大きなテーブルに遭...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...

React プロジェクトで eslint の Baidu スタイルを使用する詳細な説明

1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...

Linux の wget コマンドの詳細な紹介

目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...

Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

1.1 iptablesファイアウォールの概要Netfilter/Iptables (以下、Ipta...

HTMLでのラジオ値の取得、割り当て、登録の詳細な説明

1. ラジオのグループ化名前が同じであれば、それらはグループであり、つまり、次のようにグループ内で選...

CentOS7にNginxを素早くインストールする方法を教えます

目次1. 概要2. Nginxインストールパッケージをダウンロードする3. 依存パッケージをインスト...

Apache Spark 2.0ジョブは完了するまでに長い時間がかかります

現象Apache Spark 2.x を使用すると、Spark ジョブがすべて完了しているにもかかわ...

MySQL における between の境界と範囲の説明

境界範囲間のmysql間の範囲は両側の境界値を含む例: 3 から 7 までの id は、id >...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

HTMLセマンティクスと関連するフロントエンドフレームワークの詳細な分析

セマンティクスについて意味論は、記号やシンボルとそれらが表す意味との関係を研究する学問です。言語学で...