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

推薦する

thead、tfoot、tbodyを使用して表を作成します

これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

SQL実装 LeetCode (176. 2番目に高い給与)

[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...

xtrabackup による MySQL データベースのバックアップと復元

mysqldump バックアップは、その独自の特性 (テーブルのロック、基本的に挿入スクリプトまたは...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

jQuery は、画像を切り替えるための左ボタンと右ボタンのクリックを実装します。

この記事では、左ボタンと右ボタンをクリックすることで画像を切り替えるjQueryの具体的なコードを例...

MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal

Canal は、Java を使用して開発された Alibaba のオープンソース プロジェクトです...

CentOS7 で MySQL のスケジュールされた自動バックアップを実装する方法

実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...

MySQL の大きなデータ テーブルにフィールドを追加する方法

序文フィールドの追加は誰でもよく知っていると思います。簡単に記述できます。MySQL テーブルにフィ...

CentOS 7でsambaを使用してフォルダーを共有するための完全な手順

序文Samba は、サーバー プログラムとクライアント プログラムで構成され、Linux システム上...

MAC+PyCharm+Flask+Vue.js ビルドシステム

目次node.js+nvm+npm を設定するnpmスイッチタオバオミラーVue.jsをインストール...

Linux 上でプライベート Git サーバーを構築するための詳細なチュートリアル

1. サーバーのセットアップリモート リポジトリは実際にはローカル リポジトリと何ら変わりなく、純粋...