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

PHPz
リリース: 2023-04-26 14:10:47
オリジナル
2972 人が閲覧しました

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 コンテナ内でソフト接続が正しく作成されたかどうかを確認できます:

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にソフト接続されていることを示します。ソフト リンクが適切に機能しているかどうかをテストする

  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 サイトの他の関連記事を参照してください。

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!