検索
ホームページ運用・保守Dockerdocker ボリュームとマウントの違いは何ですか

「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 までご連絡ください。
Docker監視:メトリックの収集とコンテナの健康の追跡Docker監視:メトリックの収集とコンテナの健康の追跡Apr 10, 2025 am 09:39 AM

Docker監視の中核は、主にCPUの使用、メモリ使用、ネットワークトラフィック、ディスクI/Oなどのインジケーターを含む、コンテナの動作データを収集および分析することです。 Prometheus、Grafana、Cadvisorなどのツールを使用することにより、コンテナの包括的な監視とパフォーマンスの最適化を実現できます。

Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Apr 09, 2025 am 12:11 AM

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。

Kubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションKubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションApr 08, 2025 am 12:07 AM

DockerとKubernetesを使用して、エンタープライズアプリケーションのコンテナオーケストレーションを実行する方法は?次の手順で実装します。Dockerイメージを作成し、DockerHubにプッシュします。 Kubernetesで展開とサービスを作成して、アプリケーションを展開します。 Ingressを使用して外部アクセスを管理します。パフォーマンスの最適化と、マルチステージの構築やリソースの制約などのベストプラクティスを適用します。

Dockerのトラブルシューティング:一般的な問題の診断と解決Dockerのトラブルシューティング:一般的な問題の診断と解決Apr 07, 2025 am 12:15 AM

Docker FAQは、次の手順で診断および解決できます。1。コンテナのステータスとログを表示、2。ネットワーク構成を確認します。これらの方法により、Dockerの問題を迅速に配置して固定し、システムの安定性とパフォーマンスを向上させることができます。

Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエースDockerインタビューの質問:DevOpsエンジニアリングインタビューをエースApr 06, 2025 am 12:01 AM

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerセキュリティ硬化:容量から容器を保護しますDockerセキュリティ硬化:容量から容器を保護しますApr 05, 2025 am 12:08 AM

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。

Dockerボリューム:コンテナ内の永続的なデータの管理Dockerボリューム:コンテナ内の永続的なデータの管理Apr 04, 2025 am 12:19 AM

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワーク高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワークApr 03, 2025 am 12:06 AM

Dockerは、ブリッジネットワーク、ホストネットワーク、オーバーレイネットワークの3つのメインネットワークモードを提供します。 1.ブリッジネットワークは、単一のホストでのコンテナー間通信に適しており、仮想ブリッジを介して実装されています。 2。ホストネットワークは、高性能ネットワークが必要なシナリオに適しており、コンテナはホストのネットワークスタックを直接使用します。 3.オーバーレイネットワークは、マルチホストDockerswarmクラスターに適しており、仮想ネットワークレイヤーを介してクロスホスト通信が実現されます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

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