web-dev-qa-db-ja.com

ブラウザからDockerコンテナで実行されているTomcatにアクセスする方法は?

公式リポジトリからDockerコンテナでTomcatを実行しています。

docker pull Tomcat

homepage に記載されているガイドラインに従って、インスタンスを実行し、Tomcatサーバーが起動します

docker run -it --rm -p 8888:8080 Tomcat:8.0

Tomcatサーバーはポート8888で使用できます。次のコマンドを実行すると、boot2dockerで応答を取得できます。

curl localhost:8888

しかし、PCにインストールされているWebブラウザー(WindowsにインストールされているVirtual Boxにはありません)からページにアクセスしたいと思います。できますか?もしそうならどのように?

23
JavaTechnical

VirtualBox設定でポート転送ルールが欠落している可能性があります。

boot2docker vm > settings > Network > NAT adapter > Port forwarding

最後のエントリに注意してください。

enter image description here

このようにして、チェーン全体を構成しました:hostPort:virtualBoxPortその後virtualBoxPort:containerPort、次の図に示すように: enter image description here

24
tduchateau

数か月前にDocker-Toolsが導入されて以来、より良い回答があるようです。 Docker Toolsを使用していない場合は、 https://docs.docker.com/machine をご覧ください

Docker Toolsを使用している場合、

  1. $ docker-machine lsでdockerマシン名を見つけます
  2. $ docker-machine ip <machine-name>でdocker IPアドレスを見つけます
  3. iPアドレスを使用して接続します。 $ curl 192.168.99.100
8
Kay V

boot2docker ipを実行して、DockerブリッジのIPを取得します。その後、curl BRIDGE_IP:8888を実行できます。IPは192.168.59.103のようなものになります。 boot2dockerでは、VMネットワークスタックはローカルホストではなく、仮想インターフェイスで実行されます。

3
Usman Ismail

docker-machine lsを使用して、コンテナを実行しているVirtual BoxインスタンスのIPを取得します。次に、公開した関連ポート(私の場合は8080)でそれを使用します。したがって、http://192.168.99.100:8080でした。

1
joenova

オプション-pには引数hostPort:containerPortがあるため、ポート8080(ドッカーイメージ内)はホスト(Windowsボックス)のポート8888にマップされます。これは、curlで行ったように、:8888をURLに追加することで、WindowsボックスでTomcatを見つけることができることを意味します。

1
geert3