[英]Docker: How to curl local server xyz.example.com running on host machine from within a docker container
[英]Curl request from docker container to host timeout
我遇到docker問題,我認為這是由於我對docker網絡的了解不足。
我有一個運行nginx和php的docker鏡像。 必要的端口已暴露。 這是我用來運行映像的簡化命令。
docker run --name php-app -p 80:80 php-app
問題在於,對於安裝設置,php應用程序使用主機的公共IP自行卷曲。
例如, curl http://105.15.25.120/phpsetup.php?setup
由於卷曲超時,似乎無法從容器內部訪問此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
我可以從容器內部成功卷曲到其他IP,而不僅僅是主機的。
從主機使用curl可以正常工作,並且不會導致任何奇怪的行為。
為了簡單起見和測試,我使用官方的nginx圖像重現了該行為,以幫助得出結論,這與我自己的圖像無關。
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -p 80:80
從我的研究看來,這似乎是一個路由問題? 不確定。
容器不應使主機卷曲。 它應該自動卷曲,因為它承載了您希望卷曲的內容。
curl http://127.0.0.1/phpsetup.php?setup
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.