Docker は、アプリケーションの迅速なデプロイメントと管理のためのテクノロジーとして、開発環境および運用環境で広く使用されています。 Docker を使用する場合、多くの場合、コンテナーがホスト上のファイルを読み書きできるように、ホスト ディレクトリを Docker コンテナーの内部にマップする必要があります。
ただし、場合によっては、Docker コンテナ内のディレクトリまたはファイルをホスト マシン上のディレクトリまたはファイルにソフト接続する必要があります。これは、ソフト接続を使用してホストとコンテナーの間でコード ベースを共有したり、コンテナーがホスト上の特定のハードウェア デバイスにアクセスできるようにしたりするなど、実際のアプリケーションで非常に役立ちます。
この記事では、Docker コンテナ内のホスト ディレクトリへのソフト接続を実装する方法を紹介します。
Docker コンテナ内のホスト ディレクトリへのソフト接続を実装するには、まず Docker ホスト上のディレクトリを内部に共有する必要があります。 Dockerコンテナ。ここでは、共有ホストの/dataディレクトリを例として取り上げます。
まず、ホスト上にディレクトリ/dataを作成し、そのディレクトリ内にファイルtest.txtを作成し、そのファイルにテスト コンテンツを書き込みます。次に、Docker コンテナの起動時に、ホストの/dataディレクトリを Docker コンテナ内のディレクトリ (/container_dataなど) にマップする必要があります。
docker runコマンドを使用してtestという名前の Docker コンテナを起動し、ホストの/dataディレクトリをマップしたとします。 ##/container_dataコンテナ内のディレクトリ。これで、Docker コンテナ内の/container_dataディレクトリをチェックして、共有が正しく設定されていることを確認できます。
/container_data/test.txtからホスト上の/data/test.txtへのソフト接続を取り上げます。
ln -s /container_data/test.txt /data/test.txt
/data/test.txtを作成し、## をポイントします。 #/data/test.txtホスト マシン上。 Docker コンテナ内でソフト接続が正しく作成されたかどうかを確認できます:このコマンドは次を出力します:ls -l /data/test.txt
lrwxrwxrwx 1 root root 24 Mar 17 10:00 /data/test.txt -> /container_data/test.txt
ご覧のとおり、出力結果 ;
記号は、/data/test.txtが/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
/container_data/test.txtファイルの内容:
echo "test message in host" >> /data/test.txt
test.txtファイルに正しく追加されたことがわかります。
概要
以上がDockerコンテナ内のホストディレクトリにソフト接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。