【问题标题】:Error: getaddrinfo EAI_AGAIN (docker, nginx)错误:getaddrinfo EAI_AGAIN (docker, nginx)
【发布时间】:2019-04-23 07:18:43
【问题描述】:

我知道此错误与 DNS 查找超时错误有关,表示它是网络连接错误或代理相关错误。 但是我不知道如何解决它。

我使用 docker-compose.yml ,里面有 3 个容器。

这是我的 docker-compose.yml。作为链接

docker-compose.yml

我创建了 2 个网络来划分外部网络和内部网络。来自客户端的所有请求都通过 Nginx,port:8090 只暴露在互联网上。

问题是当我从 API 容器(内部网络)发送验证用户的请求时收到错误消息“getaddrinfo EAI_AGAIN exampleAuth.auth0.com:443”。

这是我迄今为止尝试过的

  • 我尝试在 docker demo 中添加 DNS 8.8.8.8
  • 从 API 容器 ping 8.8.8.8(不起作用)
  • 从 Nginx 容器 ping 8.8.8.8(它确实有效)
  • 可以在内部和默认条目之间进行 ping 操作

你们有什么想法吗?

【问题讨论】:

  • 你有没有用iptables=false启动docker?

标签: docker nginx docker-compose


【解决方案1】:

将我的 Dockerbuild alpine 更改为 stretch-slim (debian) 解决了您的类似问题。

【讨论】:

    【解决方案2】:

    在运行 npm install 时,我在 alpine 容器中遇到了同样的问题。在我的情况下,网络发生了变化,停止并重新启动容器解决了这个问题。

    docker-compose down
    docker-compose up
    

    来源:https://github.com/moby/moby/issues/32106

    【讨论】:

      【解决方案3】:

      我也面临同样的问题。解决方案是将 DNS 添加到 daemon.json。 除非您在机器上重新启动 docker,否则此解决方案不会生效。因此,重新启动对于解决此问题至关重要。

      【讨论】:

        猜你喜欢
        • 2021-08-29
        • 2019-04-06
        • 1970-01-01
        • 1970-01-01
        • 2020-05-10
        • 2020-06-12
        • 1970-01-01
        相关资源
        最近更新 更多