ホームページ  >  記事  >  運用・保守  >  Dockerコンテナを再起動するとデータは失われますか?

Dockerコンテナを再起動するとデータは失われますか?

WBOY
WBOYオリジナル
2022-06-17 10:41:0011036ブラウズ

Docker コンテナが再起動されるとデータは失われますが、ボリュームまたは「データ コンテナ」を使用してデータの永続性を実現できます。コンテナを閉じた後、「-v」または「-volumes-from」を実行します。以前のデータの再利用に使用できます。docker は、データを永続的に保存するためにホスト ディスク ディレクトリをマウントすることもできます。

Dockerコンテナを再起動するとデータは失われますか?

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

Docker コンテナーを再起動するとデータは失われますか?

はい、Docker を使用して Web アプリケーションまたは MySQL データベースをデプロイすると、コンテナーの再起動後にログが失われることがわかります。またはコンテナーの実行中に生成されたデータベースのデータは消去されます。

データの永続性が必要な場合は、ボリュームまたはデータ コンテナーを使用する必要があります。これにより、コンテナーを閉じた後に -v または --volumes-from を使用して以前のデータを再利用できます。 Docker はホスト ディスク ディレクトリをマウントしてデータを永続的に保存します。

コンテナ作成時に Docker Volume を実行する

docker run コマンドを使用して Docker コンテナを実行し、イメージ ubuntu/nginx を使用して、ローカル ディレクトリ /tmp をマウントします。 /source から Container directory/tmp/destination

docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash

ubuntu/nginx イメージに基づいて Docker コンテナを作成しました。指定されたコンテナーの名前は test であり、––name オプションで指定されます。

Docker ボリュームは ––volume (-v と省略可能) オプションで指定され、ホストの /tmp/source ディレクトリはコンテナ内の /tmp/destination ディレクトリに対応します。

Docker ボリュームの表示

docker Inspection コマンドを使用して、Docker コンテナーの詳細情報を表示します。

docker inspect --format='{{json .Mounts}}'test | python -m json.tool[{"Destination": "/tmp/destination",
"Mode": "","Propagation": "","RW": true,"Source": "/tmp/source","Type": "bind"}]

--format オプションを使用して、 [必要なコンテナ情報の表示] を選択します。 .Mount はコンテナの Docker Volume 情報です。

python -m json.tool は、出力された json 文字列をフォーマットして表示できます。 Source はホスト上のディレクトリ ( /tmp/source ) を表します。宛先はコンテナ内のディレクトリ (/tmp/destination) です。

ローカル ファイルはコンテナーに同期できます

local/tmp/source ディレクトリに新しい hello.txt ファイルを作成します

touch /tmp/source/hello.txtls /tmp/source/hello.txt

hello。 txt ファイルは、container/tmp/destination/ ディレクトリに表示されます。

docker exec コマンドを使用して、コンテナ内でコマンドを実行します。

docker exectest ls /tmp/destination/hello.txt

したがって、ホスト マシン上のディレクトリ /tmp/source/ に対する変更は、コンテナ ディレクトリ /tmp/destination/ に同期できます。

コンテナ ファイルはホスト マシンに同期できます

container/tmp/destination ディレクトリに新しい world.txt ファイルを作成します

docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt

world.txt ファイルは、host/tmp/source/ ディレクトリに表示されます。

ls /tmp/source/hello.txt world.txt

推奨学習: 「docker ビデオ チュートリアル」 "

以上がDockerコンテナを再起動するとデータは失われますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。