Dockerの匿名マウントと名前付きマウントの具体的な使用法

Dockerの匿名マウントと名前付きマウントの具体的な使用法

データ量

匿名マウントと名前付きマウントについて話すときは、まずボリュームとは何かを知っておく必要があります。ボリュームとは、データ ボリュームのことです。このボリュームをdockerマウントに使用します。

データ ボリュームの目的は、1 つ以上のコンテナーで使用できる特別なディレクトリを作成することです。これは、ユニオン ファイル システムである UFS をバイパスし、多くの機能を提供します。
(1) データボリュームは複数のコンテナで共有または再利用できます (2) データボリュームの変更はすぐに有効になります (3) データボリュームの更新はイメージに影響しません (4) コンテナが削除されても、データボリュームはデフォルトで保持されます (特に nacos のように、ポイント 2 と 3 を組み合わせる)

データ量を表示するには次のコマンドを使用できます。

docker ボリューム --help

実際、コマンドの内容は次のようになります。

ここに画像の説明を挿入

実際には、事前にボリュームを作成する必要はありません。ボリュームをマウントするときに名前を付けます。ボリュームが見つからない場合は、指定した名前に基づいて、ハッシュ コードではなく名前を持つ新しいデータ ボリュームが作成されます。

匿名マウントと名前付きマウント

ボリュームに関するこれまでの知識があれば、匿名マウントと名前付きマウントの違いを実際に知ることができます。1 つはボリューム名のないマウントであり、もう 1 つは指定されたボリューム名を持つマウントです。

たとえば、前回のマウントの後に、マウント パスを指定しました。実際には、ホスト パスを指定せずに、-v を使用して Docker コンテナ パスを直接マウントすることで、より簡単にマウントできます。次のように匿名で nginx をインストールします。

# 匿名マウント -P 大文字の P、ランダムなポートをマップ -v コンテナパス docker run -d -P --name nginx01 -v /etc/nginx nginx

実際には、匿名でマウントされたデータ ボリュームの名前であるハッシュ コードが返されます。このハッシュ コードに基づいて、対応するデータ ボリュームを見つけることもできます。これは、あなたにとっては匿名ですが、実際には他のユーザーが名前を付けます。使用可能なデータ ボリュームを表示するには、volume ls コマンドを使用できます。

docker ボリューム ls

この名前付きマウントでは、以前のパス指定マウントと同様にデータ ボリュームを指定する必要がありますが、今回は特定の指定パスではなく、データ ボリュームの名前を使用します。

# VOLUME NAME は現在匿名データボリュームとして表示されています。-v がマウントされると、コンテナ内のパスのみが書き込まれ、ホスト上のパスは書き込まれません。# 名前付きマウント # パス -v ボリューム名: コンテナ内のパス docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

データボリュームの場所

特定のデータ ボリュームを設定し、コンテナーをマウントし、データ ボリュームの目的がわかったので、データ ボリュームはどこにあるのでしょうか。結局のところ、マウントされているものはすべてそこにあるので、誤って削除しないように、どこにあるかを確認してください。

実際、docker の下の特定のパスは次のとおりです。

/var/lib/docker/ボリューム/xxxx/_data

このパスに cd して、データ ボリュームを確認できます。たとえば、nginx がマウントされている 2 番目の名前付きデータ ボリューム ディレクトリに cd して、特定の構造を確認します。

ここに画像の説明を挿入

マウント方法をまとめてみましょう:

名前付きマウント、匿名マウント、または指定されたパスのマウントであるかどうかを判断するにはどうすればよいでしょうか?
-v コンテナ内のパス# 匿名マウント
-v データボリューム名:/コンテナ内のパス# 名前付きマウント
-v /host path:/container path# 指定されたパスをマウントします

# コンテナ内のパスを設定するには -v を使用します: ro rw は読み取りおよび書き込み権限を変更します # ro readonly 読み取り専用 # rw readwrite 読み取りおよび書き込み # コンテナ権限が設定されている場合、コンテナはマウントされたデータに対して制限された権限を持ちます。 
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:rw nginx
# ro roが表示される場合、このパスはホストマシン経由でのみ操作でき、コンテナ内では操作できないことを意味します。

Docker 匿名マウントと名前付きマウントの具体的な使い方については、これで終わりです。Docker 匿名マウントと名前付きマウントの関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題
  • Docker での名前付きマウントと匿名マウントの実装

<<:  4つのファイル拡張子 .html、.htm、.shtml、.shtm の違い

>>:  Vue h関数の使い方の詳しい説明

推薦する

CSSは左固定と右適応のレイアウト方法を実現します

1. フローティングレイアウト1. 最初に固定幅の div をフロートさせます。ドキュメントフローか...

jsを呼び出すいくつかの方法が整理され、使用が推奨されています

a タグではクリック イベントがよく使用されます。 1. href="javascript...

SQL 文で OR と AND を混在させる場合のヒント

現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...

uniapp プロジェクトをデスクトップ アプリケーションとしてパッケージ化する方法

Electronのインストール cnpm 電子をインストール -g electron-package...

MySQL 8.0.12 クイックインストールチュートリアル

MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...

iframeリフレッシュ方式の方が便利

iframeを更新する方法1. 更新するには、JavaScriptのdocument.fr.loca...

MySQL 高可用性クラスタの展開とフェイルオーバーの実装

目次1. 内閣府1. コンセプト2. MHAの構成3. MHAの特徴2. MySQL+MHAをビルド...

アコーディオン効果を実現するJavaScript

この記事では、アコーディオン効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Linux 環境に mysql5.7.36 データベースをインストールするチュートリアル

ダウンロードアドレス: https://dev.mysql.com/downloads/mysql/...

Webpack ファイル パッケージ化エラー例外

webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...

ubuntu20.04 LTS システムのデフォルト ソース ソース リスト ファイルの変更

誤って source.list の内容を変更し、一連のエラーが発生した場合は、デフォルトのソース フ...

MySQL 5.7.13 ソースコードのコンパイル、インストール、および構成方法のグラフィックチュートリアル

インストール環境: CentOS7 64ビットMINI版公式ソースコードのコンパイルおよびインストー...

Vue-Routerのルート設定の詳しい説明

目次導入ルート内のオブジェクト属性パス: 文字列コンポーネント: コンポーネント | () =>...

Chrome、Firefox、IEで入力カーソルの位置がずれる問題の解決方法

ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...

Vue で ToDo アプリケーションを実装する例

背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...