首页 > 解决方案 > docker container: curl: (7) 无法连接到 172.17.0.1 端口 4000: 没有到主机的路由

问题描述

graphql在 4000 端口的主机上运行服务器

机器上的 curl 效果很好,我得到了我的期望:

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ me { _id } }" }' http://localhost:4000/graphq

当我在容器上卷曲时:

curl http://172.17.0.1

我有:

<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.16.1</center>
</body>
</html>

它向我表明我可以ngnix从容器中到达,并且它向我表明我可以从容器中到达我的机器。

但是当我卷曲表单容器时:

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ me { _id } }" }' http://172.17.0.1:4000/graphql

我有:

curl: (7) Failed to connect to 172.17.0.1 port 4000: No route to host

标签: linuxdocker

解决方案


我认为你必须为公共访问配置 Nginx,因为 docker 使用一个特殊的网络,就像它有不同的网络范围一样,你必须在 Nginx 服务器中指定网络范围。

请参考以下链接: https ://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-tcp/

https://www.cyberciti.biz/faq/linux-unix-nginx-access-control-howto/


推荐阅读