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

推薦する

JS+AJAX は、州、市、地区のドロップダウン リストのリンクを実現します。

この記事では、州、市、地区のドロップダウンリストのリンクを実現するためのJS + AJAXの具体的な...

Vueバスの簡単な使い方

Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...

MYSQL インストールの解凍バージョンと発生したエラーと解決策

1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...

Linux CRM デプロイメント コードの詳細な説明

Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...

初心者がソースコードからMySQLのデッドロック問題を理解する

夜遅くまで何度も困難なシングルステップデバッグを行った後、ようやく理想的なブレークポイントを見つけま...

Vueコンポーネントの再利用と拡張の詳細な説明

目次概要延長は必要ですか?スロットJavaScript ユーティリティ関数拡張コンポーネントの複数の...

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

jwtを使用してノードによって生成されたトークンをどこに保存するかについての簡単な説明

A: 通常はクライアントに保存されます。 jwt または JSON Web Token は、リクエス...

du コマンドを使用して Linux システム ディレクトリのサイズを取得する方法

Linux システムを使用したことがある人なら、Linux システムの ls コマンドは通常、ファイ...

Docker パッケージング ノード プロジェクトのプロセスの説明

バックエンド プログラマーとして、フロントエンドのものをいじらなければならないこともあります。そこで...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

XAML でボタンを円として再描画する方法

XAML レイアウトを使用する場合、インターフェイスを Metro 風にするために、一部のボタンでは...

4つの柔軟なScssコンパイル出力スタイル

多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...

CentOS 8/RHEL 8 に Cockpit をインストールして使用する方法

Cockpit は、CentOS および RHEL システムで使用できる Web ベースのサーバー管...

いくつかの CSS3 タグの短縮形 (推奨)

border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...