Dockerデータストレージの概要

Dockerデータストレージの概要

この記事を読む前に、ボリューム、バインドマウント、tmpfs マウントの基本を理解しておいてください。詳細については、次の記事を参照してください。

  • Docker データ ストレージ ボリューム
  • Docker データストレージ バインドマウント
  • Docker データ ストレージ tmpfs マウント

次の図は、ボリューム、バインド マウント、および tmpfs マウントの違いを示しています。

ボリュームの使用シナリオ

  • 複数のコンテナ間でデータを共有します。
  • Docker ホストに特定のフォルダーまたはディレクトリ構造があることを確認する方法はありません。ボリュームを使用すると、これらのホストの違いを隠すことができます。
  • データをリモート ホストまたはクラウド プロバイダーに保存する場合。
  • ある Docker ホストから別の Docker ホストにデータをバックアップ、復元、または移行する場合は、ボリュームが適切な選択肢です。

バインドマウントの使用例

  • ホストとコンテナ間で構成ファイルを共有します。たとえば、nginx コンテナの構成ファイルをホスト マシンに保存し、バインド マウントを使用してマウントすると、nginx 構成を変更するためにコンテナに入る必要がなくなります。
  • ホストとコンテナ間でコードまたはビルド出力を共有します。たとえば、ホスト上のプロジェクトのターゲット ディレクトリをコンテナーにマウントできます。このようにして、Maven がホスト上で新しい製品をビルドするときに、新しいイメージを生成せずにコンテナー内で直接実行できます。
  • Dockerホスト上のファイルまたはディレクトリ構造が決定されます

tmpfsマウントの使用例

  • セキュリティやその他の理由でコンテナまたはホストにデータを保持したくない場合は、tmpfs マウント モードを使用できます。

バインドマウントとボリュームの動作の違い

  • 空のボリュームを空でないコンテナ ディレクトリにマウントすると、コンテナ ディレクトリ内のファイルがボリュームにコピーされます。つまり、コンテナ ディレクトリ内の元のファイルはボリュームによって上書きされません。
  • バインド マウントを使用してホスト ディレクトリをコンテナー ディレクトリにマウントすると、コンテナー ディレクトリ内の元のファイルは非表示になり、ホスト ディレクトリ内のファイルのみが読み取れるようになります。

参考文献

https://docs.docker.com/storage/#tmpfs-mounts の優れた使用例

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Docker のデフォルトイメージとコンテナの保存場所を変更する方法
  • Dockerの永続ストレージとデータ共有の詳細な説明
  • Docker データ ストレージ ボリュームの詳細な説明
  • Docker ストレージ ドライバーの紹介
  • Dockerデータストレージのバインドマウントの詳細な説明
  • Docker データ ストレージ tmpfs マウントの詳細な説明
  • Dockerサーバーのストレージリソースプール不足問題の解決

<<:  JavaScript 非同期プログラミングにおける Promise の初期の使用法の詳細な説明

>>:  MySQL 4.1/5.0/5.1/5.5/5.6の主な違い

推薦する

JavaScript Three.js でテキストを作成する最初の経験

目次効果テキストの作成を開始するまずフォントローダーを作成するフォントライブラリを読み込むテキストジ...

LinuxにRocketMQインスタンスをインストールする手順

1. JDKをインストールする1.1 現在の仮想マシン環境にJDKがあるかどうかを確認する rpm ...

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...

VMwareワークステーションとデバイス/資格情報の非互換性によって発生する起動エラーについて

VMware Workstationsが仮想マシンエラーを起動する エラー レポートのリンク htt...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...

MySQL シャーディングの詳細

1. ビジネスシナリオの紹介MySQLを使用する電子商取引システムがあるとします。大量のデータを保存...

MySQLのトランザクション特性とレベル原則の分析

1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...

jsを使ってシンプルなディスククロックを実現する

この記事では、参考までに、シンプルなディスククロックを実装するためのjsの具体的なコードを紹介します...

Nginx リバース プロキシ springboot jar パッケージ プロセス分析

Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...

Vue+element はローカル検索機能付きのドロップダウン メニューを実装します

必要:バックエンドは配列オブジェクトを返し、それがフロントエンドで配列に結合されます。配列は名前に従...

MySQL 8.0.26 のインストールとアンインストールの完全なステップバイステップの記録

目次序文1. インストール1.公式サイトからダウンロード2. 構成を作成する3. MySQLを初期化...

Vue v-for ループを書く 7 つの方法

目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...

jQueryでフルスクリーンスクロール効果を実現

この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...

Nginx+Tomcat 負荷分散クラスタの実装例

目次導入1. 事例の概要2. 環境の展開3. Nginxホストのインストール4. Tomcatのイン...

Dockerがコンテナを作成した後にホスト名を変更する詳細なプロセス

後悔を癒す薬は世の中にある、考えてみる気さえあれば!コンテナを再作成する必要はもうありません。 m2...