ホームページ >運用・保守 >Docker >Dockerコンテナ内のホストディレクトリにソフト接続する方法

Dockerコンテナ内のホストディレクトリにソフト接続する方法

PHPz
PHPzオリジナル
2023-04-26 10:27:363142ブラウズ

Docker は、アプリケーションの迅速なデプロイメントと管理のためのテクノロジーとして、開発環境および運用環境で広く使用されています。 Docker を使用する場合、多くの場合、コンテナーがホスト上のファイルを読み書きできるように、ホスト ディレクトリを Docker コンテナーの内部にマップする必要があります。

ただし、場合によっては、Docker コンテナ内のディレクトリまたはファイルをホスト マシン上のディレクトリまたはファイルにソフト接続する必要があります。これは、ソフト接続を使用してホストとコンテナーの間でコード ベースを共有したり、コンテナーがホスト上の特定のハードウェア デバイスにアクセスできるようにしたりするなど、実際のアプリケーションで非常に役立ちます。

この記事では、Docker コンテナ内のホスト ディレクトリへのソフト接続を実装する方法を紹介します。

  1. 準備

Docker コンテナ内のホスト ディレクトリへのソフト接続を実装するには、まず Docker ホスト上のディレクトリを内部に共有する必要があります。 Dockerコンテナ。ここでは、共有ホストの /data ディレクトリを例として取り上げます。

まず、ホスト上にディレクトリ /data を作成し、そのディレクトリ内にファイル test.txt を作成し、そのファイルにテスト コンテンツを書き込みます。次に、Docker コンテナの起動時に、ホストの /data ディレクトリを Docker コンテナ内のディレクトリ (/container_data など) にマップする必要があります。

docker run コマンドを使用して test という名前の Docker コンテナを起動し、ホストの /data ディレクトリをマップしたとします。 ##/container_data コンテナ内のディレクトリ。これで、Docker コンテナ内の /container_data ディレクトリをチェックして、共有が正しく設定されていることを確認できます。

    Docker コンテナ内にソフト接続を作成する
共有設定が完了したら、Docker コンテナ内にソフト接続を作成し、ディレクトリまたはファイルを追加できます。コンテナ ホスト マシン上のディレクトリまたはファイルへのリンク。ここでは例として、コンテナ内の

/container_data/test.txt からホスト上の /data/test.txt へのソフト接続を取り上げます。

Docker コンテナで次のコマンドを実行します。

ln -s /container_data/test.txt /data/test.txt
このコマンドは、コンテナ内にソフト接続

/data/test.txt を作成し、## をポイントします。 #/data/test.txt ホスト マシン上。 Docker コンテナ内でソフト接続が正しく作成されたかどうかを確認できます: <pre class="brush:php;toolbar:false">ls -l /data/test.txt</pre>このコマンドは次を出力します:

lrwxrwxrwx 1 root root 24 Mar 17 10:00 /data/test.txt -> /container_data/test.txt

ご覧のとおり、出力結果 ;

記号は、

/data/test.txt/container_data/test.txt にソフト接続されていることを示します。 ソフト リンクが適切に機能しているかどうかをテストする

  1. ソフト リンクが Docker コンテナ内に正しく作成されたことを確認した後、ソフト リンクが機能しているかどうかをテストできます。正しく。 Docker コンテナ内で
  2. /container_data/test.txt
を読み書きし、ホスト上で

/data/test.txt を読み書きすることでテストできます。 まず、Docker コンテナ内で次のコマンドを実行して、test.txt

ファイルの内容を

/container_data/test.txt にリダイレクトします:

echo "test message in container" > /container_data/test.txt
次に、ホスト マシンで /data/test.txt ファイルの内容を表示して、ソフト リンクが正常に機能するかどうかを確認できます。

test.txt の内容は、Docker コンテナ内に設定されている内容と同じです。

次に、ホスト上の

/data/test.txt ファイルに新しいコンテンツを追加します。

cat /data/test.txt
次に、それを Docker コンテナ内で再度表示します

/container_data/test.txt ファイルの内容:

echo "test message in host" >> /data/test.txt
新しく追加された内容が

test.txt ファイルに正しく追加されたことがわかります。

概要

上記の手順により、Docker コンテナ内にソフト リンクを作成し、コンテナ内のファイルをホスト上のファイルにリンクすることができました。 。実際のアプリケーションでは、ソフト リンクを使用するとファイルやディレクトリを簡単に共有できるため、開発と管理の効率が向上します。もちろん、ソフト リンクを使用する場合は、ソフト リンクが適切に機能するように、ファイルまたはディレクトリの読み取りおよび書き込み権限に注意を払う必要があります。

    以上がDockerコンテナ内のホストディレクトリにソフト接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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