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

推薦する

フォーム送信の更新ページはソースコード設計にジャンプしません

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

Vue Element フロントエンドアプリケーション開発: Vuex での API ストアビューの使用

目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

docker windows10共有ディレクトリのマウント失敗の解決策

原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策

docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思い...

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

HTML フォーム_PowerNode Java アカデミー

1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...

MySql 5.6.35 winx64 インストール詳細チュートリアル

注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...

Vue でルーティング遷移効果を実装する 4 つの方法

Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...

Centos7でファイルをバックアップするときは、バックアップファイルにバックアップの日付を追加します

Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...

JS WebSocketを使用して簡単なチャットを実装する方法

目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...

Centos7 に Docker をインストールします (2020 の最新バージョンが利用可能、コピーして貼り付けるだけ)

操作については、こちらの公式ドキュメントを参照してください。インストール1. 古いバージョンの do...

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...