docker ボリュームとマウントの違いは何ですか
「docker volume」とマウントの違いは次のとおりです。「docker volume」は宣言的であり、「Docker Engine」自体はシステム内の特定のディレクトリを占有し、Docker はデフォルトで占有されたパスの下にボリュームを割り当てます。 . パス。マウントはマウント ポイントとしてパスを占有しません。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
Docker ボリュームとマウントの違いは何ですか
長期間にわたって、複数のコンテナーが同じデータ ディレクトリへのアクセスを共有する必要がある場合、またはコンテナー内のデータを永続化する必要がある場合 (これらはすべて、ディレクトリのマウント (バインド マウント) の形式を使用して、ホスト上のディレクトリをコンテナ内の指定されたディレクトリにマウントします。この方法で問題は解決できますが、この方法には常にいくつかの欠点があります。
- ##異なるサーバーにデプロイされたコンテナは、実際のディスク マウント ディレクトリに応じてパスを変更する必要があります。
- 異なるオペレーティング システムのファイルとディレクトリのアクセス許可を使用すると、混乱したり怒ったりすることはありませんか?

1. コンテナを別のサーバーにデプロイする場合は、実際のディスク マウント ディレクトリに従ってパスを変更する必要があります。
例: In Linux システムでは、マウント ディレクトリとして "/var/someDir" を使用することがよくあります。ただし、Mac では、/var/ は実際のディレクトリではありません。Mac ユーザーは、Linux よりも高度であると言うでしょう。 /var/ は使用しません。ユーザーはそれを必要としません;Windows システムでは、Windows ユーザーは次のように尋ねます: /var/ とは何ですか? CドライブとDドライブが最も合理的な区分です~~

もともと Linux システムでのテストは非常に良好でしたが、その結果、Windows でのマウント パスにさまざまな問題が発生しました。ここでは詳しく説明しません。これらの問題が発生していない場合は、試してみてください。それを体験してください。でも、結局のところ、Linux と同じなので、Mac の方が優れています。
Docker にはマウント方法以外にデータを永続化できる Volume というものがありますが、恥ずかしい話ですが、私は Docker を長く使ってきて、マウントを Volume だと思ってきました。 Docker-compose ファイル内で、コンテナとホストのマウント パスのマッピング関係をボリューム セクションに記述することは問題ありませんが、これは常に誤解されています。 。 (派手な非難?)
実際には、「マウント」と「Docker ボリューム」は同じものではありません。特定の違いがあります。Docker ボリュームは宣言型です。Docker エンジンそれ自体はシステム内の特定のディレクトリ (通常、Linux では「/var/lib/docker」) を占有し、Mac と Windows の両方で調整できます。ボリュームを宣言すると、Docker はデフォルトで占有パスの下にあるボリュームにパスを割り当てます。例:

これを使用する場合は、ホスト パス名の代わりにボリューム名を使用してください。上記で「test_vol」という名前のボリュームを作成したと仮定します。
- docker run -d -v "test_vol:/var/data" some_image、これによりコンテナ内の /var/data ディレクトリが "test_vol" のマウント ポイントにマウントされます;
- docker-compose でも同様ですが、ボリュームは docker-compose.yaml ファイルで宣言する必要があります。上記の例を変更してみましょう。
イメージとボリュームの両方を保存する必要があるため、ボリュームにより docker ディレクトリが拡張されることに注意してください。システム ディスクには置かないことをお勧めします。 . docker インストール ディレクトリを別のより大きなマウント ディスクに構成します。
この 2 つは動作が異なります。コンテナ外部の対応するディレクトリが空の場合、ボリュームはまずコンテナ内のコンテンツをコンテナ外部のディレクトリにコピーしますが、マウントはコンテナの内部ディレクトリにある外部ディレクトリを上書きします。ディレクトリ! ! ボリューム バインド マウントのもう 1 つの欠点は、nginx コンテナーの構成ファイル nginx.conf をマウントするなど、ファイルを直接マウントできないことです。
- ここで、構成ファイルと同様の単一ファイル方式はボリュームの使用には適していないことに注意してください。バインド マウントでも問題は解決できますが、構成ファイルには次のような機密情報が含まれているためです。データベースのパスワード、したがって、最良の方法は tmpfs を使用することです。
- kubernetes のボリュームにも同様の設計が反映されており、subPath で構成ファイルのマウントの問題を解決できますが、実際の最良の方法は configMap を使用することです。
- 推奨される学習: 「 docker ビデオ チュートリアル
以上がdocker ボリュームとマウントの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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