ドッカーとの間に問題が発生しました。ドッカーコンテナからホストタイムアウトまでのCurlリクエスト
私はnginxとphpを実行しているドッカー画像を持っています。必要なポートが公開されます。ここでは、イメージを実行するために使用している単純化されたコマンドを示します。
docker run --name php-app -p 80:80 php-app
問題は、インストールのセットアップのために、自分自身へのPHPアプリケーションのカールは、ホストマシンのパブリックIPを使用していることです。単なる一例として
、 curl http://105.15.25.120/phpsetup.php?setup
このIPは、私は、コンテナ内から他のIPのに成功したカールができ
curl -vvv 105.15.25.120
About to connect() to 105.15.25.120 port 80 (#0)
Trying 105.15.25.120...
Connection timed out
Failed connect to 105.15.25.120:80; Connection timed out
Closing connection 0
curl: (7) Failed connect to 105.15.25.120:80; Connection timed out
アウトカール回として、コンテナ内部から到達不可能であると思われる、ありませんホストの。
ホストマシンのカールを使用すると問題なく動作します。
簡潔性とテストのために、私は公式のnginxイメージでその動作を再現し、自分のイメージで問題ではないと結論づけました。私の研究から
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -p 80:80
、ルーティングの問題のようですか?わからない。
ホストには、Dockerコンテナからの接続を禁止するファイアウォールルールが設定されている場合があります。特に 'filter'テーブルの' INPUT'チェーンのルールを見直してください。 – larsks
ホストマシンのIPアドレスがコンテナ内部からどのように分かっていますか?コンテナを始めるときにコンテナに提供しますか? – nwinkler
ええ、ENV変数 – Miller