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

推薦する

CSS で複数の境界線を実装するためのヒント

1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...

数千万のデータを扱うMySQLのページングクエリのパフォーマンスを最適化する

MySQL のデータ量が多い場合、制限ページングが使用されます。ページ数が増えると、クエリの効率が低...

CSS3のtransform属性で実装される4つの機能

CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...

バージョン管理ツール Rational ClearCase の紹介

Rational ClearCase は、コードやその他のソフトウェア開発資産のバージョン管理を実...

MySQL 子テーブルで外部キー制約チェックを無効にする方法

準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...

Tomcat が https アクセスをサポートするための手順の説明

tomcat を https アクセスに対応させる方法ステップ: (1)キーストアファイルを生成する...

Windows 10 で MySql の解凍バージョンをインストールして構成する方法のチュートリアル

Windows 10 で MySql データベースの解凍バージョンをインストールするステップ 1: ...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...

MySQLメモリストレージエンジンに関する知識

メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...

MySQL で自動インクリメントシーケンスを実装するためのサンプルコード

1. シーケンステーブルを作成する テーブル `sequence` を作成します ( `name` ...

nginx クッキーの有効期間に関する議論の要約

訪問するたびにブラウザにCookieが生成されますが、 Cookieの存在はユーザーにとって良いこと...

シームレスなトークンリフレッシュを実現する方法

目次1. 需要方法1方法2方法3 2. 実装3. 問題解決質問1: トークンの複数回の更新を防ぐ方法...

Reactコンポーネントのライフサイクルの詳細な説明

目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...

MySQL データベース シェル import_table データ インポート

目次MySQL Shell import_table データのインポート1. import_tabl...