Docker は、ソフトウェア開発、テスト、運用環境で広く使用されている軽量のコンテナ化テクノロジです。 Docker コンテナを使用すると、アプリケーションとその依存関係をポータブル コンテナにパッケージ化し、さまざまな環境で簡単に使用できます。ただし、Dockerコンテナを利用する場合、Dockerコンテナ内のサーバにアクセスする必要がある場合がありますので、この記事ではDockerコンテナ内のサーバにアクセスする方法を紹介します。
1. docker exec コマンドを使用する
Docker は、実行中のコンテナー内でコマンドを実行できる docker exec コマンドを公式に提供します。このコマンドの一般的な構文は次のとおりです。
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
このうち、OPTIONS には一連のパラメーターが含まれています-t (擬似端末を割り当てる)、-i (STDIN を開いたままにする) など。 CONTAINER は実行するコマンドのコンテナ名または ID、COMMAND は実行するコマンド、ARG はコマンドのパラメータです。
mycontainer という名前のコンテナ内のポート 80 で実行されているサーバーにアクセスするとします。次の手順に従います:
#docker exec -it mycontainer /bin/bash
上記のコマンドでは、 -it パラメーターを使用して対話型ターミナルをコンテナーに割り当てます。 /bin/bash はシェル コマンドです。実行されること。 CURL クライアントがコンテナ内にインストールされている場合、それを使用してサーバーにアクセスできます。
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
このうち、PRIVATE_PORT はマッピングされるポートであり、 PROTO は、TCP や UDP などのマッピング プロトコルです。 PROTO が指定されていない場合、デフォルトは TCP です。
docker port コマンドを使用して、mycontainer 内のポート 80 のマッピングを表示します。コンテナ:
このコマンドは、次の形式の文字列を返します:
0.0.0.0: 32789
このうち、32789 は mycontainer コンテナ内のポート 80 にマッピングされています。
#curl またはホスト上の他のクライアント ツールを使用してアクセスします:
# #上記のコマンドで、localhost はホスト名、32789 は docker port コマンドから取得したポート番号です。 3. docker network コマンドを使用する
Docker コンテナが独自のネットワークで実行されている場合は、docker network コマンドを使用して、コンテナをホストまたは他のコンテナのネットワークに接続できます。 。このコマンドの一般的な構文は次のとおりです。
docker network connect [OPTIONS] NETWORK CONTAINER このうち、OPTIONS には、-- などの一連のパラメータが含まれます。 alias (コンテナのエイリアスを設定)、--ip (コンテナの IP アドレスを設定) など。 NETWORK は接続先のネットワーク名または ID、CONTAINER は接続先のコンテナー名または ID です。 たとえば、mycontainer という名前のコンテナをデフォルトのブリッジ ネットワークに接続し、それに webserver という名前のエイリアスを持たせたいとします。次の手順に従います:
ホスト クライアント ツールでcurl またはその他のツールを使用して、 access:
上記のコマンドでは、webserver はコンテナに設定したエイリアスで、ホスト直撃インタビュー。 概要
Docker コンテナの内部サーバーへのアクセスは、Docker テクノロジを使用する際の重要な問題です。この記事では、この目標を達成するための 3 つの方法を紹介します。 docker exec コマンドを使用してコンテナ内でコマンドを実行するのが最も基本的な方法です。docker port コマンドを使用してポート マッピングを表示することも便利な方法であり、docker network コマンドを使用してネットワークに接続すると、内部のサーバーへのより柔軟なアクセスが可能になりますコンテナ。実際のアプリケーションでは、特定のニーズに応じてさまざまな方法を選択して、Docker コンテナ内のサーバーに便利かつ迅速にアクセスできます。
以上がDockerでサーバーにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。