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

推薦する

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...

Linuxの運用と保守の基本プロセス管理と環境構成分析

目次1. プロセスの基本的な概要2. プロセスの構成要素3. プロセス環境4. プロセスステータス5...

Docker-compose を使用して ELK クラスターを構築する方法

すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

MySQLデータベースのマスタースレーブレプリケーションと読み取り書き込み分離に関する詳細なチュートリアル

目次序文1. MySQL マスタースレーブレプリケーション1. サポートされているレプリケーションの...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

H5ゲームをnginxサーバーにデプロイする方法の詳細な説明

自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...

Linux centos7 に phpMyAdmin をインストールするチュートリアル

yum install httpd php mariadb-server –yランプの動作環境を設定...

XHTML の珍しいが便利なタグ

Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...

SQL 文で OR と AND を混在させる場合のヒント

現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...

複数の例で HTML フォームを使用する方法

参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...

Ubuntu mysqlログイン名とパスワードを表示および変更し、phpmyadminをインストールする

MySQLをインストールした後、ターミナルでmysql -u root -pと入力してEnterを押...

入力ファイルの制御と美化について

一部のWebサイトでアップロードする場合、「参照」ボタンをクリックすると、[ファイルの選択]ダイアロ...