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関数の使い方の詳しい説明

推薦する

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...

JavaScript で DOM 要素を監視する MutationObServer の詳細

1. 基本的な使い方これは MutationObserver コンストラクターを通じてインスタンス化...

Vueがsweetalert2プロンプトコンポーネントを統合する際の問題についてお話ししましょう

目次1. プロジェクト統合1. CDNインポート方法: 2. 箱の梱包を確認する3. 迅速な箱詰め4...

計算機機能を実装するミニプログラム

この記事の例では、計算機機能を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

MySQL 5.7.17 のインストールと設定のグラフィックチュートリアル

ブロガーはこう述べています。「私は『史上最も簡単な MySQL チュートリアル』という一連のブログ記...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

Linuxでawkを使用する方法の詳細な説明

awk を学ぶ前に、sed、grep、tr、cut などのコマンドを学んでおく必要があります。これら...

パズル効果を実現するネイティブ js

この記事では、パズル効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

1つのコマンドで、シェルの読み取りコマンドの共通パラメータを理解できます。

Shell で受信パラメータを受信する方法は 2 つあることがわかっています。 1 つはスクリプト...

Vueはシンプルなタイマーコンポーネントを実装します

プロジェクトを実行すると、リアルタイム更新、広告アニメーションの連続表示などの要件に遭遇することは避...

良いリファクタリングを行うには、コードをリファクタリングするだけでなく、人生をリファクタリングすることも重要です。

職業的な観点からも、人生の観点からも、良い再建をすることは本当に簡単ではありません。楽観的で熱心で前...

JavaScriptはすべての選択と選択解除の操作を実装します

この記事では、JavaScriptで全選択と全選択解除の操作を実装するための具体的なコードを参考まで...

JavaScriptページングコンポーネントの使い方の詳細な説明

ページネーションコンポーネントはWeb開発でよく使われるコンポーネントです。ページネーション機能を実...