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 コンテナ内でソフト接続が正しく作成されたかどうかを確認できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ls -l /data/test.txt</pre><div class="contentsignin">ログイン後にコピー</div></div>
このコマンドは次を出力します:
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 サイトの他の関連記事を参照してください。