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 のサンプルコード

推薦する

URLパラメータに基づくNginx転送

使用シナリオ:ジャンプ パスは、傍受された URL に応じて動的に構成する必要があります。これは、イ...

MySQLオンラインデッドロック分析練習

序文MySQL を学習する際に、MySQL のロック メカニズムについて簡単に理解したことがあると思...

jQuery エディタ プラグイン tinyMCE の使い方

簡略化されたファイル サイズを変更し、サンプルをダウンロードします。ファイルをローカル コンピュータ...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

MySQLの日次統計レポートでは、その日にデータがない場合には0が入力されます。

1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によっ...

Centos6でgitlabを構築する方法

序文元のプロジェクトは、パブリックネットワークgitlabに配置されていました。セキュリティ上の理由...

Vueはシンプルなショッピングカートの例を実装します

この記事では、Vueの具体的なコードを共有して、簡単なショッピングカートを実装します。具体的な内容は...

一般的なメールボックスで正常に表示できる HTML メールを作成するためのヒント

HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...

スクロールラグの問題を解決するためのオーバーフロースクロールの詳細な説明

序文div またはモジュールに overflow: scroll 属性を使用すると、iOS フォンで...

Webデザイン: タイトルが完全に表示できない場合

<br />今日、新しくなった ChinaUI.com の Web サイトを見たのですが...

純粋な CSS を使用してドロップダウン メニューを作成するサンプル コード

導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...

MySQLで論理SQLを置き換える際の落とし穴を回避する方法の詳細な説明

重複キーの置換と挿入の違い置換の使用法競合がない場合、挿入と同等となり、他の列のデフォルト値が使用さ...

MySQLの基本を素早く学ぶ

目次SQLを理解するSELECTを理解するエイリアス定数をクエリし、固定定数列を追加します。重複行を...

Docker イメージに基づいて Go プロジェクトをデプロイする方法と手順

知識への依存Go クロスコンパイルの基礎Dockerの基礎Dockerfileカスタムイメージの基本...

HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。

ユーザーがログアウトした後、ブラウザの戻るボタンがクリックされると、Web アプリケーションは保護さ...