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 でフローティングにより親要素の高さが崩れる問題を解決するいくつかの方法

以前は、フロートはレイアウトによく使用されていましたが、フローティングレイアウトを使用すると親要素の...

MySQL FAQ シリーズ: 一時テーブルを使用する場合

一時テーブルの概要一時テーブルとは: MySQL は中間結果セットを保存するために使用されます。一時...

フロントエンド開発一般マニュアル(ツール、Webサイト、経験などを含む)

今日は何もすることがなかったので、いくつかのツール(オンラインとクライアント)、よく使用する URL...

Windows10システムにMySQL 5.7.17をインストールする

オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...

better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

より良いスクロールの原則親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します...

MySQL Innodb インデックス メカニズムの詳細な紹介

1. インデックスとは何ですか?インデックスは、ストレージ エンジンがレコードをすばやく検索するため...

Linux で xargs コマンドを使用する詳細なチュートリアル

みなさんこんにちは。私は梁旭です。 Linux を使用しているときに、いくつかのコマンドを連結する必...

ページを更新せずにフォームを送信するには iframe を使用します

そこで、この問題を解決するために埋め込みフレームワークを導入します。具体的な原則は、フォームがデータ...

CSS フロート(float, clear)の人気の解説と体験談

私はかなり昔に CSS に触れましたが、フローティングについてはいつも混乱していました。私の理解が浅...

トランジションコンポーネントのアニメーション効果を使用した Vue サンプルコード

トランジションドキュメントアドレスは、フェードインとフェードアウト効果を実現するための背景ポップアッ...

docker compose サービスの起動順序を制御する方法

まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...

React コンポーネント通信ルーティングパラメータ転送 (react-router-dom)

目次最近Reactを勉強していて、今は仕事でVueを使っています。学習の過程で、両者を比較して理解を...

両端揃えレイアウトを実現する CSS 列のサンプルコード

1. 堂々巡りいろいろ試行錯誤した結果、均等割り付けレイアウトを実現する最も簡単な方法は CSS ...

Vue グローバル フィルターの概念、注意事項、基本的な使用方法

目次1. フィルターの概念1. グローバルフィルターのフォーマットをカスタマイズする2. フィルター...

Centos7 での MySQL のインストールに関するチュートリアル

最近、自宅サーバーにクラウドディスクを導入する予定なので、一連の環境構築作業を始めました。MySQL...