Dockerコンテナイメージからコードを復元する手順

Dockerコンテナイメージからコードを復元する手順

コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります。このとき、コンテナを実行しているサーバー上でいくつかの簡単な操作を実行して、イメージをパッケージ化するときに使用したコードを抽出する必要があります。

すべてのコンテナを表示:

dockerコンテナls -a

コンテナ ID に従って指定されたコンテナを入力します。

docker exec -ti id /bin/bash

コンテナ内のディレクトリをサービス指定のフォルダにコピーします。

docker コンテナ cp id:/usr/local/tomcat/webapps/province-admin /home/test/province-admin

上記の 3 つの手順を実行すると、コンテナ内のコードがサーバーの指定ディレクトリに抽出されます。サーバーからローカル コンピューターにコードをダウンロードすると、必要なコードを表示できます。

補足: Docker データ ボリューム コンテナーのバックアップとリカバリは非常に詳細です。小白もできるよ! ! !

日常的には、コンテナとローカルの物理マシン間のディレクトリをマッピングし、それを直接ローカルに保存します。その後、ローカルのハードディスクを定期的にバックアップするだけで済みます。しかし、そのようなマッピングがない場合、バックアップとリカバリをどのように処理すればよいでしょうか?

まず、バックアップする必要があるデータ ボリュームを作成します。

docker run -itd -v /opt/zz --name c1 centos /bin/bash

-itdは対話モードで実行され、dはバックグラウンドで実行されます

-v はコンテナ内のデータボリュームを指定します。指定されたデータボリュームが存在しない場合は、自動的に作成されます。

–name 名前をカスタマイズする

/bin/bash 対話型コマンドは/bin/bashで実行されます

データボリュームコンテナのバックアップ機能を検証するには、マウントされた /opt/zz ディレクトリに c11 ファイルを作成し、内容に「woda」を書き込みます。

[root@160e0646396d zz]# c11.txt をタッチします
[root@160e0646396d zz]# echo "woda" > c11.txt 
[root@160e0646396d zz]# cat c11.txt
ウォダ

次に、ボリューム コンテナーをバックアップするには、--volumes-from を使用してバックアップするボリュームをマークし、ホストの現在のディレクトリをコンテナーの /v3 ディレクトリにマウントします。

$(pwd) は、docker が現在のディレクトリを指定するためにサポートしている方法です。Linux の基本的なコマンドを理解している人は、Linux で現在のディレクトリを表示するには pwd コマンドが使用されることに気付くでしょう。

コンテナが起動すると、現在のディレクトリに生成される c23.tar ファイルが /opt/zz コンテナ ボリュームのバックアップ ファイルになります。

このようにして、データ ボリューム コンテナー内のデータがバックアップされます。

練習の全体的なプロセスは次のとおりです。

[root@client ~]# docker run --volumes-from c1 -v $(pwd):/v3 centos tar cvf /v3/c23.tar /opt/zz
tar: メンバー名の先頭の「/」を削除する
/opt/zz/
テキスト

最後に、バックアップする必要があるコンテナのデータボリュームの内容、/opt/zz/c11.txtを確認します。

–volumes-from <コンテナ>: コンテナに接続してデータをバックアップします

-v $(pwd):/v3: 現在のパスをコンテナ centos コンテナにマウントし、データはこのパスにバックアップされます。

centos: 非常に小さい画像

tar cvf /v3/c23.tar /opt/zz: /opt/zzパス内のファイルをc23.tarにパックします。

2回目の回復

バックアップの最終的な目的は、復元できるようにすることです。そうでなければ、バックアップは無意味です。Docker バックアップの復元も非常に簡単で、必要な手順は 2 つだけです。

まず、空のデータボリュームを持つコンテナ /opt/x2 を作成します。

docker run -itd -v /opt/x2 --name c3 centos /bin/bash
docker run -itd -v /opt/x2 --name c3 centos /bin/bash

次に、別のコンテナを作成し、データ ボリュームを data1 コンテナ ボリュームにマウントし、untar を使用してバックアップ ファイルをマウントされたコンテナ ボリュームに解凍します。

docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar

この時点で、以前にバックアップされたデータボリュームコンテナのデータはコンテナ /opt/x2 に復元されています。

復元されたデータを表示および検証するには、別のコンテナを起動し、/opt/x2 コンテナ ボリュームをマウントして表示します。

練習の全体的なプロセスは次のとおりです。

[root@client ~]# docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
オプション/zz/
opt/zz/c11.txt

最後に、先ほどバックアップした c11.txt が c3 コンテナのデータ ボリュームに復元されたことがわかります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerデータのバックアップとリカバリプロセスの詳細な説明
  • docker での psql データベースのバックアップとリカバリの詳細な説明
  • Docker におけるコンテナのバックアップ、リカバリ、移行の詳細な説明
  • Dockerプライベートウェアハウスリカバリ例の詳細な説明
  • Dockerコンテナのデータを復元する方法

<<:  mysql replace into の使用法の詳細な説明

>>:  テキストの両側に水平線を描くための CSS のサンプルコード

推薦する

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

MySQL 学習 (VII): Innodb ストレージ エンジン インデックスの実装原理の詳細説明

概要データベースでは、ツリー ディレクトリと同様に、インデックスを使用してデータ検索を高速化します。...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

HTML の POST リクエストにおける a タグの 2 つの使用法の分析

HTML POST リクエストで a タグを使用する 2 つの例を次に示します。 1. ajaxを使...

Linux デスクトップ用の 4 つのスキャン ツール

ペーパーレスの世界はまだ到来していませんが、書類や写真をスキャンすることで紙をなくす人が増えています...

MySQL Binlog ログ処理ツールの比較分析

目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...

MySQL 5.7.31 64 ビット無料インストール版チュートリアル図

1. ダウンロードダウンロードアドレス: https://dev.mysql.com/get/Dow...

CSS3は水平方向の中央揃え、垂直方向の中央揃え、水平方向と垂直方向の中央揃えのサンプルコードを実装しています。

フロントエンドの担当者であれば、面接でも仕事中でも、「CSS を使用して中央揃えにする」という効果に...

XHTML 入門チュートリアル: フレーム タグの使用

<br />フレーム構造により、ブラウザの 1 ページに複数の Web ページを同時に表...

vue.jsは画像のURLに従って画像をダウンロードします

最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロー...

Dockerデーモンのセキュリティ設定項目の詳細な説明

目次1. テスト環境1.1 CentOS 7をインストールする1.2 Docker CE 19.03...

Linux のロード vmlinux デバッグ

gdb を使用してカーネル シンボルをロードする arm-eabi-gdb 出力/ターゲット/製品/...

MySQL の無効な左結合の問題を解決する方法とその使用上の注意

MySQLの左結合が無効であり、その使用方法今日SQLを書いていたとき、左結合を使用すると左のテーブ...

MySQLクエリインターセプトの詳細な分析

目次1. クエリの最適化1. MySQLチューニングの概要2. 小さなテーブルが大きなテーブルを動か...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...