ホームページ >運用・保守 >Docker >Dockerを再起動せずにディレクトリをマウントする方法

Dockerを再起動せずにディレクトリをマウントする方法

PHPz
PHPzオリジナル
2023-04-19 17:25:521382ブラウズ

Docker の人気に伴い、多数のアプリケーションが Docker コンテナにデプロイされ始めています。 Docker の移植性と分離性の利点により、アプリケーションのデプロイメントの効率と安定性が大幅に向上します。ただし、Docker コンテナーの分離の性質により、人々は少し無力感を感じることがあります。この記事では、Dockerコンテナを再起動せずにディレクトリをマウントする方法を紹介します。

まず、Docker のデータ量を理解する必要があります。データ ボリュームは、Docker コンテナにデータを保存するために使用されるメカニズムであり、ローカル ディレクトリを Docker コンテナにマウントして、コンテナ内のデータをローカル ディスクに永続化できます。 Docker コンテナを起動するときに、以下に示すように、マウントするローカル ディレクトリを指定できます。

docker run -v /localdir:/containerdir image_name

このうち、/localdir はローカル ディレクトリ、/containerdir## はローカル ディレクトリです。 # はコンテナ内のディレクトリ、image_name は Docker イメージの名前です。

ただし、ディレクトリのマウント関係を変更する必要がある場合は、通常、Docker コンテナを再起動する必要があります。これにより、アプリケーションのダウンタイムが増加し、ユーザー エクスペリエンスに影響を与えます。では、Docker コンテナを再起動せずにマウント ディレクトリを変更するにはどうすればよいでしょうか?

簡単な方法は、

mount コマンドを使用することです。 mountコマンドはファイルシステムのマウント、アンマウントを実現するコマンドで、Dockerコンテナを再起動せずにマウントディレクトリを変更することができます。具体的な手順は次のとおりです。

    現在のコンテナのマウント状態を確認します。
  1. docker inspect -f '{{json .Mounts}}' container_name
このうち、

container_name はコンテナの名前を指します。 Dockerコンテナ。

上記コマンドを実行すると、コンテナ内のマウントディレクトリ情報が以下の形式で返されます:

[
   {
      "Type": "bind",
      "Source": "/var/data",
      "Destination": "/app/data",
      "Mode": "",
      "RW": true,
      "Propagation": "rprivate"
   }
]
このうち、

Typeがマウントタイプです。 , Source はローカル ディレクトリ、Destination はコンテナ内のディレクトリ、RW は読み取りおよび書き込み権限を示します。

    現在のマウント ディレクトリをアンインストールします:
  1. mount --make-rprivate /var/data
    umount /var/data
上記のコマンドでは、

--make-rprivate オプションを使用してディレクトリを次のように設定します。他のプロセスへの影響を避けるためのプライベート権限。 umount コマンドは、ディレクトリをアンインストールするために使用されます。

    新しいディレクトリをマウントします:
  1. mount --bind /new/data /var/data
上記のコマンドでは、新しいディレクトリを元のディレクトリにマウントして、ディレクトリを変更します。

上記の手順により、Docker コンテナを再起動せずにマウント ディレクトリを変更することができました。ディレクトリ内に使用中のファイルがある場合は、データの損失を避けるために、変更する前にディレクトリを占有しているすべてのプロセスを停止する必要があることに注意してください。

Docker は効率的で便利なコンテナ化されたデプロイメント ソリューションを提供しますが、実際のアプリケーションでは、その分離特性を完全に理解し、さまざまな問題に適切に対処するために関連するテクニックの使用方法を学ぶ必要があります。この記事の導入により、Docker コンテナを再起動せずにディレクトリをマウントする方法を習得できたと思いますが、実際のアプリケーション シナリオへの対処に役立つことを願っています。

以上がDockerを再起動せずにディレクトリをマウントする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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