目次
Docker ボリュームとマウントの違いは何ですか
ホームページ 運用・保守 Docker docker ボリュームとマウントの違いは何ですか

docker ボリュームとマウントの違いは何ですか

Mar 08, 2022 pm 04:53 PM
docker

「docker volume」とマウントの違いは次のとおりです。「docker volume」は宣言的であり、「Docker Engine」自体はシステム内の特定のディレクトリを占有し、Docker はデフォルトで占有されたパスの下にボリュームを割り当てます。 . パス。マウントはマウント ポイントとしてパスを占有しません。

docker ボリュームとマウントの違いは何ですか

このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

Docker ボリュームとマウントの違いは何ですか

長期間にわたって、複数のコンテナーが同じデータ ディレクトリへのアクセスを共有する必要がある場合、またはコンテナー内のデータを永続化する必要がある場合 (これらはすべて、ディレクトリのマウント (バインド マウント) の形式を使用して、ホスト上のディレクトリをコンテナ内の指定されたディレクトリにマウントします。この方法で問題は解決できますが、この方法には常にいくつかの欠点があります。

    ##異なるサーバーにデプロイされたコンテナは、実際のディスク マウント ディレクトリに応じてパスを変更する必要があります。
  • 異なるオペレーティング システムのファイルとディレクトリのアクセス許可を使用すると、混乱したり怒ったりすることはありませんか?
これらの問題は、ボリュームを使用して解決できます。まずバインド マウントと Docker ボリュームを比較し、次にボリュームがバインド マウントの問題をどのように解決するかを見てみましょう。まず図を見てみましょう:

docker ボリュームとマウントの違いは何ですかこの図は docker ドキュメントからのものです。
この図は、バインド マウントとボリュームが実際にホストのファイル システムを使用していることを示しています。違いは、volume が docker 自体が管理するディレクトリ内のサブディレクトリであるため、権限によるマウントの問題が発生しないことと、ディレクトリのパスが docker 自体によって管理されるため、サーバーごとに異なるパスを指定する必要がないことです。パスを気にする必要はありません (実際にはすべてではありません。以下で気にします?)。次に、バインド マウントとボリュームのさまざまな使用法を見てみましょう。

1. コンテナを別のサーバーにデプロイする場合は、実際のディスク マウント ディレクトリに従ってパスを変更する必要があります。

例:

In Linux システムでは、マウント ディレクトリとして "/var/someDir" を使用することがよくあります。

ただし、Mac では、/var/ は実際のディレクトリではありません。Mac ユーザーは、Linux よりも高度であると言うでしょう。 /var/ は使用しません。ユーザーはそれを必要としません;

Windows システムでは、Windows ユーザーは次のように尋ねます: /var/ とは何ですか? CドライブとDドライブが最も合理的な区分です~~

誰もが自分が一番ハンサムだと言っていますが、誰が一番ハンサムですか
Mac の var ディレクトリはソフト リンクです
#2。さまざまなオペレーティング システムのファイルとディレクトリのアクセス許可を使用すると、混乱したり怒ったりするでしょう?

もともと Linux システムでのテストは非常に良好でしたが、その結果、Windows でのマウント パスにさまざまな問題が発生しました。ここでは詳しく説明しません。これらの問題が発生していない場合は、試してみてください。それを体験してください。でも、結局のところ、Linux と同じなので、Mac の方が優れています。

Docker にはマウント方法以外にデータを永続化できる Volume というものがありますが、恥ずかしい話ですが、私は Docker を長く使ってきて、マウントを Volume だと思ってきました。 Docker-compose ファイル内で、コンテナとホストのマウント パスのマッピング関係をボリューム セクションに記述することは問題ありませんが、これは常に誤解されています。 。 (派手な非難?)

実際には、「マウント」と「Docker ボリューム」は同じものではありません。特定の違いがあります。Docker ボリュームは宣言型です。Docker エンジンそれ自体はシステム内の特定のディレクトリ (通常、Linux では「/var/lib/docker」) を占有し、Mac と Windows の両方で調整できます。ボリュームを宣言すると、Docker はデフォルトで占有パスの下にあるボリュームにパスを割り当てます。例:

Title
マウントに相対, volume 自身の「サイト」にマウントポイントとしてパスを割り当てるのはDocker Engineであり、自身のサイトの権限を明確に整理する必要があります。したがって、ホストパスを実装する際の上記の問題は解決されます。 ?

これを使用する場合は、ホスト パス名の代わりにボリューム名を使用してください。上記で「test_vol」という名前のボリュームを作成したと仮定します。

  1. docker run -d -v "test_vol:/var/data" some_image、これによりコンテナ内の /var/data ディレクトリが "test_vol" のマウント ポイントにマウントされます;
  2. docker-compose でも同様ですが、ボリュームは docker-compose.yaml ファイルで宣言する必要があります。上記の例を変更してみましょう。

イメージとボリュームの両方を保存する必要があるため、ボリュームにより docker ディレクトリが拡張されることに注意してください。システム ディスクには置かないことをお勧めします。 . docker インストール ディレクトリを別のより大きなマウント ディスクに構成します。

この 2 つは動作が異なります。コンテナ外部の対応するディレクトリが空の場合、ボリュームはまずコンテナ内のコンテンツをコンテナ外部のディレクトリにコピーしますが、マウントはコンテナの内部ディレクトリにある外部ディレクトリを上書きします。ディレクトリ! ! ボリューム バインド マウントのもう 1 つの欠点は、nginx コンテナーの構成ファイル nginx.conf をマウントするなど、ファイルを直接マウントできないことです。

  1. ここで、構成ファイルと同様の単一ファイル方式はボリュームの使用には適していないことに注意してください。バインド マウントでも問題は解決できますが、構成ファイルには次のような機密情報が含まれているためです。データベースのパスワード、したがって、最良の方法は tmpfs を使用することです。
  2. kubernetes のボリュームにも同様の設計が反映されており、subPath で構成ファイルのマウントの問題を解決できますが、実際の最良の方法は configMap を使用することです。
  3. 推奨される学習: 「
  4. docker ビデオ チュートリアル

以上がdocker ボリュームとマウントの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerでミラーを作成する方法 Dockerでミラーを作成する方法 Apr 15, 2025 am 11:27 AM

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerバージョンを読む方法 Dockerバージョンを読む方法 Apr 15, 2025 am 11:51 AM

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Docker画像を保存する方法 Docker画像を保存する方法 Apr 15, 2025 am 11:54 AM

Dockerに画像を保存するには、Docker Commitコマンドを使用して、指定されたコンテナの現在の状態、Syntax:Docker Commit [Options]コンテナID画像名を含む新しい画像を作成できます。画像をリポジトリに保存するには、Docker Pushコマンド、Syntax:Docker Push Image Name [:Tag]を使用できます。保存された画像をインポートするには、Docker Pullコマンド、Syntax:Docker Pull Image Name [:Tag]を使用できます。

中国のDocker画像ソースを変更する方法 中国のDocker画像ソースを変更する方法 Apr 15, 2025 am 11:30 AM

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

See all articles