8

DockerをインストールしたVMであるubuntuマシンがあります。ローカルの Windows マシンからこのマシンを使用し、 ssh を実行して、ターミナルを ubuntu マシンに開いています。

ここで、必要なすべてのソフトウェアを含む docker イメージを取得します。たとえば、apache がインストールされています。後で、サンプル アプリケーション (Web アプリケーション) をデプロイして保存します。

現在、デプロイされたアプリケーションが適切に実行されているかどうかを確認する方法について、混乱しています。つまり、デプロイされたアプリケーションを含むコンテナーのアドレスは何でしょうか。例:-ubuntuマシンのアドレスであるhttp://127.xxxと入力すると、タイムアウトになります。

デプロイされたアプリケーションを確認する方法を教えてください。また、コンソールでのプログラムの出力の印刷は、出力が印刷されるため、一見問題なく機能します。私が疑問に思っているのは、Webアプリケーションに関することだけです。

4

5 に答える 5

6

Docker コンテナには個別の IP アドレスがあります。デフォルトではプライベートです (ホストマシンからのみアクセス可能)。

Docker は API を介してすべてのメタデータ (IP アドレスを含む) を提供します。

  1. https://docs.docker.io/reference/api/docker_remote_api_v1.10/#inspect-a-container
  2. https://docs.docker.io/reference/api/docker_remote_api_v1.10/#monitor-docker-s-events

また、 docker-genと呼ばれる小さなツールを見てインスピレーションを得ることもできます。Docker イベントを監視し、テンプレートを使用してホスト マシン上で構成ファイルを作成します。

于 2014-06-01T09:10:41.007 に答える
3

ID (長い 16 進文字列) がわかっている場合、または名前を付けた場合に、docker コンテナーの IP アドレスを取得するには、次のようにします。

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-id-or-name>
于 2014-12-02T13:50:30.923 に答える
1

Docker は独自のネットワークを実行しており、それに関する情報を取得するには、次のコマンドを実行できます:
docker network ls
docker network inspect <network name>
docker inspect <container id>
出力で、IP を見つけることができるはずです。

ただし、Dockerfile と dockerrunコマンドに関して、次の点に注意する必要があります。

  • DockerfileEXPOSEでポートすると、コンテナー内のサービスは Docker の外部からアクセスできなくなりますが、他の Docker コンテナー内からはアクセスできます。
  • また、EXPOSE を使用してdocker run -p ...フラグを使用すると、コンテナ内のサービスはどこからでもアクセスでき、Docker の外部でもアクセスできます

したがって、たとえば、Apache がポート 8080 で実行されている場合、Dockerfile で公開する必要があります。次に、次のように実行 docker run -d -p 8080:8080 <image name>できます。HTTP://localhost:8080 のホストからアクセスできるはずです。

これは古い質問/回答ですが、他の誰かを助けるかもしれません;)

于 2020-12-04T21:30:34.243 に答える