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 でオブザーバー パターンを実装する方法

目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...

MySQL ページングパフォーマンスの調査

一般的なページング方法: 1. エスカレーター方式エスカレーター方式では通常、前のページ/次のページ...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

VMware 仮想マシンの 3 つの接続方法の例の分析

NATこのようにして、仮想マシンのネットワーク カードはホストの VMnet8 に接続されます。この...

Navicat for MySQLのスケジュールされたデータベースバックアップとデータ復旧の詳細

データベースの変更または削除操作によってデータ エラーが発生したり、データベースがクラッシュしたりす...

Linux でディスク IO を表示し、読み取りと書き込みで高い IO を占有するプロセスを見つけます。

背景 - オンラインアラートオンライン サーバーがアラームを発し、ディスク使用率 disk.util...

CentOS 7 で Apache (httpd) サービスをインストールおよびアンインストールする詳細な手順

アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...

nginx の http リクエスト処理の各段階の詳細な分析

nginx の HTTP モジュールを作成する場合、リクエスト開始時のアクセス許可の有無、コンテンツ...

Docker で複数の MySQL コンテナを作成して実行する方法の例

1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...

フィールドの文字セットの違いによる MySQL のインデックス失敗の解決策

インデックスとは何ですか?なぜインデックスを作成するのですか?インデックスは、列に特定の値を持つ行を...

Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明

目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...

Win10 での MySQL 8.0.16 のインストールと設定のチュートリアル

1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...

Linux でパスワードの有効期限を表示および設定する方法

適切な設定を行うことで、Linux ユーザーにパスワードを定期的に変更させることができます。パスワー...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

コピー&ペーストはパッケージングの敵です

OO、デザイン パターン、および多くのオブジェクト指向の原則について話す前に、まず 1 つのことを習...