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

推薦する

DIVマスクを使用して、マウスでチェックボックスを直接チェックすることが無効である問題を解決します

フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮し...

シンプルなCSSアニメーションのtransition属性の詳しい説明

1. 遷移属性の理解1. transition 属性は、次の 4 つの遷移プロパティを設定するために...

CSS の div の下の同じ行にある複数の要素を右揃えにする

方法1:フロート:右さらに、フローティングにするとレイアウトがよりコンパクトになります(隙間がなくな...

Dockerはrabbitmqのサンプルコードをインストールして実行します

イメージをプルします: [mall@VM_0_7_centos ~]$ sudo docker pu...

フレームセットを使用して複雑なページレイアウトを実装するためのテクニックの概要

コードをコピーコードは次のとおりです。 <html> <!--混合フレームレイアウ...

MySQL の遅いクエリとクエリ再構築方法の記録

序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...

SQLと各種NoSQLデータベースの使用シナリオの説明

SQL はメイントランクです。なぜ私はこのように理解するのでしょうか。技術的な観点からリレーショナル...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

MySQL テーブル名の大文字と小文字の選択

目次1. 大文字と小文字の区別を決定するパラメータ2. パラメータ変更に関する注意事項要約: 1. ...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

CSS フォント、テキスト、リストのプロパティの詳細な紹介

1. フォントのプロパティcolorは、div{color:red;}のようにテキストの色を指定しま...

Vueプロジェクトはログインと登録の効果を実現します

この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有してい...

MySQL 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...