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の主な違い

推薦する

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

dockerfile-maven-plugin 使用ガイドの概要

目次pom 構成Setting.xml 構成ログインステータスログインが必要ですログインは必要ありま...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...

MySQL の一時テーブルと派生テーブルについての簡単な説明

派生テーブルについてメイン クエリに派生テーブルが含まれている場合、または SELECT ステートメ...

vue の v-for ディレクティブはリストのレンダリングを完了します

目次1. リストの走査2. Vueにおけるキーの役割3. リストフィルタリングこの記事では、Vue ...

DockerプライベートライブラリHarborのアーキテクチャとコンポーネントの説明

この記事では、Harbor アーキテクチャの構成と、実行時に各コンポーネントを使用する方法について説...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...

流星効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...

JS でカルーセル画像を実装するいくつかの方法

カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...

vue3 タイムスタンプ変換 (フィルターを使用せずに)

vue2 では、タイムスタンプを変換するときに、通常はフィルターを使用します。vue3 以降では、...

MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル

MacにMySQLデータベースをインストールし、環境変数を設定する手順を参考までに記録します。具体的...