ホームページ  >  記事  >  運用・保守  >  Dockerでサーバーにアクセスする方法

Dockerでサーバーにアクセスする方法

PHPz
PHPzオリジナル
2023-04-10 14:19:281068ブラウズ

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 で実行されているサーバーにアクセスするとします。次の手順に従います:

  1. docker exec コマンドを使用してコンテナに入ります:

#docker exec -it mycontainer /bin/bash

##コンテナ内でコマンドを実行してサーバーにアクセスします:
  1. #curl http://localhost:80

上記のコマンドでは、 -it パラメーターを使用して対話型ターミナルをコンテナーに割り当てます。 /bin/bash はシェル コマンドです。実行されること。 CURL クライアントがコンテナ内にインストールされている場合、それを使用してサーバーにアクセスできます。

2. docker port コマンドを使用する

docker exec コマンドの使用に加えて、docker port コマンドを使用して Docker コンテナ内のポート マッピングを表示することもできます。このコマンドの一般的な構文は次のとおりです。

docker port CONTAINER [PRIVATE_PORT[/PROTO]]

このうち、PRIVATE_PORT はマッピングされるポートであり、 PROTO は、TCP や UDP などのマッピング プロトコルです。 PROTO が指定されていない場合、デフォルトは TCP です。

mycontainer という名前のコンテナ内のポート 80 にアクセスしたいとします。次の手順に従います。

docker port コマンドを使用して、mycontainer 内のポート 80 のマッピングを表示します。コンテナ:

  1. docker port mycontainer 80

このコマンドは、次の形式の文字列を返します:

0.0.0.0: 32789

このうち、32789 は mycontainer コンテナ内のポート 80 にマッピングされています。

#curl またはホスト上の他のクライアント ツールを使用してアクセスします:

  1. curl http://localhost:32789

# #上記のコマンドで、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 という名前のエイリアスを持たせたいとします。次の手順に従います:

docker network コマンドを使用します。 mycontainer をブリッジ ネットワークに接続します:

  1. docker network connect --alias webserver Bridge mycontainer

ホスト クライアント ツールでcurl またはその他のツールを使用して、 access:

  1. curl http://webserver

上記のコマンドでは、webserver はコンテナに設定したエイリアスで、ホスト直撃インタビュー。 概要

Docker コンテナの内部サーバーへのアクセスは、Docker テクノロジを使用する際の重要な問題です。この記事では、この目標を達成するための 3 つの方法を紹介します。 docker exec コマンドを使用してコンテナ内でコマンドを実行するのが最も基本的な方法です。docker port コマンドを使用してポート マッピングを表示することも便利な方法であり、docker network コマンドを使用してネットワークに接続すると、内部のサーバーへのより柔軟なアクセスが可能になりますコンテナ。実際のアプリケーションでは、特定のニーズに応じてさまざまな方法を選択して、Docker コンテナ内のサーバーに便利かつ迅速にアクセスできます。

以上がDockerでサーバーにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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