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

推薦する

docker-maven-pluginはイメージをパッケージ化し、プライベートウェアハウスにアップロードします。

目次1. docker-maven-pluginの紹介2. 環境とソフトウェアの準備3. デモ例3....

大規模な MySQL テーブルに対する count() の実装を最適化しました

以下は、B+ ツリーのデータ構造と実験結果からの推測に基づいた私の判断です。間違いがあればご指摘くだ...

CSS3 テキストシャドウ text-shadow プロパティの詳細な説明

テキストシャドウ text-shadow プロパティの効果: 1. 右下隅の影、左下隅の影、左上隅の...

CentOS7.4 に MySQL 5.7.26 をインストールするための詳細なチュートリアル

CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...

「@INC で ExtUtils/MakeMaker.pm が見つかりません」というエラーを解決する

mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...

JavaScript はクリックして画像の形状を変更する (変換アプリケーション) を実装します。

JavaScriptをクリックすると画像の形状が変わります(変形の応用)。参考までに具体的な内容は...

Nginx 書き換えジャンプの適用シナリオの詳細な説明

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

JS でクリップボード API を使用する方法

目次1. Document.execCommand() メソッド(1)コピー操作(2)貼り付け操作(...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

HttpとHttpsの両方をサポートするNginxの詳細な設定

最近の Web サイトでは Https をサポートすることがほぼ標準機能となっており、Nginx は...

階層化されたピラミッドを実現するための HTML+CSS の例

この記事では主に、HTML+CSS で階層化ピラミッドを実装する例を紹介し、皆さんと共有します。詳細...

TypeScript デコレータ定義

目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

MySQL の結合インデックスと左端一致原則の詳細な説明

序文これまでインターネットでMySQLジョイントインデックスの最左接頭辞マッチングに関する記事をたく...

MySQLの指定されたテーブルからデータをエクスポートする例の詳細な説明

指定されたテーブルからデータをエクスポートするMySQLの詳細な説明必要とする: 1. テーブルはす...