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

Dockerコンテナを停止するとデータは失われますか?

青灯夜游
青灯夜游オリジナル
2022-02-23 16:38:1512598ブラウズ

Docker コンテナを停止しても、データは失われません。 docker コンテナが停止して終了すると、終了状態になります。コンテナ内のデータは失われることはなく、「docker ps -a」で表示できます。コンテナが削除された場合にのみ、データも削除されます。コンテナの削除。

Dockerコンテナを停止するとデータは失われますか?

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

Docker コンテナを停止しても、データは失われません。

Docker コンテナが停止して終了すると、仮想マシンをシャットダウンするのと同じ終了状態になるため、データは失われません。

現時点では、 docker ps -a で表示でき、docker start で起動することもできます。コンテナを削除するだけでデータがクリアされます。

docker rm の後のみ、コンテナーを削除するとデータが消去されます。

コンテナを作成してからコンテナを削除します。コンテナを削除するとデータも削除されます。

作成時にデータを削除せずにコンテナを削除する方法コンテナ dockerrun-vhost_dir:containere_dirこれで問題は解決します。

拡張知識: コンテナーが再起動されると、コンテナーの実行中に生成されたログまたはデータベース データがクリアされます。

解決策:

Docker は、ホスト ディスク ディレクトリをマウントすることでデータを永続的に保存できます。

1. コンテナーの作成時に Docker Volume を実行する

docker run コマンドを使用して Docker コンテナーを実行し、イメージ ubuntu/nginx を使用して、ローカル ディレクトリ /tmp/source をコンテナ ディレクトリ /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 ディレクトリに対応します。

2. 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 を表します。

Destination はコンテナ内のディレクトリ、つまり /tmp/destination です。

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

local/tmp/source ディレクトリに新しい hello.txt ファイルを作成します。 container/tmp /destination/ ディレクトリに表示されます

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

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

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

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

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

docker exectest ls /tmp/destination/hello.txt

world.txtファイルはホスト マシン/tmp にあります。 /source/ ディレクトリに表示されます。

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

推奨される学習: 「

docker ビデオ チュートリアル

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

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