Dockerデータストレージのバインドマウントの詳細な説明

Dockerデータストレージのバインドマウントの詳細な説明

この記事を読む前に、Volumes について予備知識を身に付けておいてください。詳細については、こちらの記事を参照してください。

Docker データ ストレージ ボリュームの詳細な説明

デフォルトでは、コンテナ データの読み取りと書き込みはコンテナのストレージ レイヤーで行われます。コンテナが削除されると、そのコンテナ上のデータは失われます。したがって、コンテナ ストレージ レイヤーで書き込み操作が発生しないようにする必要があります。データの永続的なストレージを実現するには、データを保存するソリューションを選択する必要があります。現在、いくつかの方法があります。

  • ボリューム
  • バインドマウント
  • tmpfs マウント

次の図は、これら 3 つの手法を示しています。

バインドマウント

バインド マウント モードはボリュームと非常によく似ています。違いは、バインド マウント モードではホスト上の任意のファイルまたはフォルダーがコンテナーにマウントされるのに対し、ボリュームでは基本的に Docker サービスによって管理される領域 (デフォルトは /var/lib/docker/volumes の下のフォルダー) がコンテナーにマウントされる点です。

バインドマウントの使用方法はボリュームの使用方法と似ており、ホストファイルは-vまたは--mountパラメータを通じてコン​​テナーにマウントされます。次に例を示します。

--mountパラメータを使用する場合は、 type=bindを指定する必要があります。

$ docker run -d \
 --name=nginxtest \
 --mount type=bind、source=/usr/local/web、destination=/usr/share/nginx/html \ マウントタイプ=bind、source=/usr/local/web、destination=/usr/share/nginx/html \
 nginx:最新

上記の例では、ホスト上の /usr/local/web フォルダーをコンテナー内の /usr/share/nginx/html フォルダーにマウントします。

または-vパラメータを使用します:

$ docker run -d \
 --name=nginxtest \
 -v /usr/local/web:/usr/share/nginx/html \
 nginx:最新

マウントが成功すると、コンテナは /usr/share/nginx/html ディレクトリからデータを読み取ったり書き込んだりします。このディレクトリは実際には、ホストの /usr/local/web ディレクトリからデータを読み取ったり書き込んだりします。したがって、ボリュームまたはバインドマウントは、コンテナーとホストがファイルを共有する方法とも考えられます。

バインド マウントを使用してホスト ディレクトリをコンテナー内の空でないディレクトリにマウントすると、コンテナー内の空でないディレクトリ内のファイルは非表示になり、このディレクトリにアクセスするときにコンテナーがアクセスできるファイルはすべてホスト ディレクトリのものになります。これは、バインド マウント モードとボリューム モード間の動作上の最大の違いでもあります。

バインドマウントの使用シナリオ

こちらの記事を参照してください: Docker データストレージの概要

参考文献

https://docs.docker.com/storage/bind-mounts/

要約する

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

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

<<:  JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明

>>:  ログインスライダー検証を実装するJavaScript

推薦する

Apple M1チップにnginxをインストールし、vueプロジェクトをデプロイする詳細な手順

nginx をインストールApple Mac ではインストールに brew を使用します。brew ...

JavaScript で配列の変更を監視する方法

序文以前、defineProperty を紹介したとき、オブジェクトの変更のみを監視でき、配列の変更...

jQueryは動的タグイベントを実装します

この記事では、タグイベントを動的に追加するためのjQueryの具体的なコードを参考までに紹介します。...

docker で mysql に接続できない場合の解決策

シナリオ: 仮想マシンの Docker コンテナに最新バージョンの MySQL をインストールした後...

コードレイン効果を実現するjQueryプラグイン

この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...

CSS3は、Transformを使用して動く2D時計を作成します。

これでtransformコースは終了です。例を見てみましょう。transform transform...

ReactでCSSスタイルを動的に変更する2つの方法の詳細な説明

最初の方法: デモとしてボタンをクリックしてテキストを表示または非表示にするクラスを動的に追加します...

MySQL 文字セットの概要

目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...

SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...

CentOS 上での MySQL 5.6 のコンパイルとインストール、および複数の MySQL インスタンスのインストールの詳細な説明

--1. mysql用の新しいグループとユーザーを作成する # ユーザー追加 -M -s /sbin...

JavaScript ではおそらく switch 文を使う必要はない

目次スイッチも複雑なコードブロックもありませんPythonからのインスピレーション辞書を使用してスイ...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

デザイン理論:人間中心のデザインコンセプト

<br />思想が東西に分かれていた時代、東洋の叡智を代表するものの一つとして「禅」は多...

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

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