Docker curl:(7)无法连接到本地主机端口80:连接被拒绝

这篇具有很好参考价值的文章主要介绍了Docker curl:(7)无法连接到本地主机端口80:连接被拒绝。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker curl:(7)无法连接到本地主机端口80:连接被拒绝

我从本地主机执行

$ curl localhost
or
$ curl http://www.xxcms.com
and response its ok.

我从容器名称" php"执行:

 curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
curl www.xxcms.com
curl: (7) Failed to connect to www.xxcms.com port 80: Connection refused

从Docker容器故障连接时,如果在Docker容器外部连接则可以,这是什么问题?

原因

localhost(即127.0.0.1)始终表示与命令当前正在运行的主机相同。因此,在您的主机上,它将调用您的主机,但是在容器中运行时,它将调用您的容器。

我将假定您有一个将www.xxcms.com域指向localhost的DNS解析器。 nginx容器将主机的端口80转发给它,因此就好像它在主机上运行一样。因此,当您从主机调用它时,它会成功,因为调用转到了主机的端口80。

但是,当您在php容器内调用它时,它不是在调用主机,而是在php容器的端口80上调用,并且您的php容器内没有运行的网络服务器。如果您在nginx容器中进行了此调用,则它将起作用。

您应该问自己,为什么您的php容器需要调用您的nginx容器,这对我来说听起来很奇怪,因为通常nginx只会将"工作"转发给php。例如,您能否只创建一个您想要的PHP脚本并直接调用它?

如果确实需要调用nginx,请记住,来自同一docker-compose.yml文件的容器可以按名称相互调用,因此您可以仅使用nignx作为主机名。

解决方案

在php容器中,没有虚拟主机。 如果我在Docker容器php中添加php /etc/hosts 172.17.0.3(docker nginx的IP,查找命令docker inspect nginx | grep “IPAddress”),其工作原理…………文章来源地址https://www.toymoban.com/news/detail-840243.html

172.17.0.3   www.xxcms.com

到了这里,关于Docker curl:(7)无法连接到本地主机端口80:连接被拒绝的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包