简体   繁体   English

docker 容器:curl:(7)无法连接到 172.17.0.1 端口 4000:没有到主机的路由

[英]docker container: curl: (7) Failed to connect to 172.17.0.1 port 4000: No route to host

I have graphql server running on the main machine on 4000 port我在 4000 端口的主机上运行了graphql服务器

curl from the machine works well and I got what I expect:机器上的 curl 效果很好,我得到了我的期望:

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

when I do curl on container:当我在容器上卷曲时:

curl http://172.17.0.1

I got:我有:

<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>

It shows me that I can reach ngnix from container and it indicates for me that I can reach my machine from the container.它告诉我我可以从容器到达ngnix并且它告诉我我可以从容器到达我的机器。

but when I curl form container:但是当我卷曲形成容器时:

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

I got:我有:

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

I think you have to configure Nginx for public access because the docker uses a special network like it does have different network range you have to specify the network range in the Nginx server.我认为您必须将 Nginx 配置为公共访问,因为 docker 使用特殊网络,就像它确实具有不同的网络范围一样,您必须在 Nginx 服务器中指定网络范围。

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 DB到Docker容器的主机端口 - Host port with DB to Docker container Docker构建失败,获取:无法连接到代理没有到主机的路由 - Docker build fails, getting: failed to connect to proxy No route to host 将主机端口转发到 docker 容器 - Forward host port to docker container Docker 端口映射是主机到容器还是容器到主机? - Are Docker port mappings host-to-container or container-to-host? 执行从 docker 容器到主机的端口映射时,如何修复“curl (56) Recv failure: Connection reset by peer”错误? - How to fix "curl (56) Recv failure: Connection reset by peer" error when doing a port mapping from docker container to host machine? Node Js ssh:连接到主机端口 22。没有到主机的路由 - Node Js ssh: connect to host port 22. No route to host 从Docker容器连接到另一个Docker容器的端口 - Connect from a Docker container to port of another docker container telnet:无法连接到远程主机:没有到主机的路由 - 安装了 docker - telnet: Unable to connect to remote host: No route to host - with docker installed 我如何从Docker容器中知道主机的映射端口? - How do I know mapped port of host from docker container? Docker 端口映射(`-p<host-port> :<container-port> `) 适用于? - What container interface(s) does Docker port mapping (`-p <host-port>:<container-port>`) apply to?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM