无法设置本地主机.这会阻止创建 GUID



我正在努力解决以下问题。我们有一个在 Docker 上正常运行的 Java 应用程序。现在,当我们尝试将应用程序迁移到 Docker Swarm 时 - 将其作为服务运行 - 它总是抛出以下异常:

 Cache - Unable to set localhost. This prevents creation of a GUID. Cause was: 39bc5cdfb3d9: 39bc5cdfb3d9: Name or service not known
java.net.UnknownHostException: 39bc5cdfb3d9: 39bc5cdfb3d9: Name or service not known

请注意,39bc5cdfb3d9是容器 ID。

我尝试了以下方法:

  1. 针对我们正在使用的 DNS curl
  2. 更新其他服务器备份的nginx配置

设置:

  1. 3 经理
  2. 容器仅在 2 台服务器上运行 app1.dev 并且 app2.dev 它有一个约束 label=dev
  3. 使用默认网络入口,

DNS:dev-ecc.toroserver.com我使用以下命令运行该服务:

     docker service create 
            ${HTTP} 
            ${HTTPS} 
            ${VOLUMES} 
            ${ENV_VARS} 
            ${LICENSE} 
            ${LOGS} 
            --limit-memory 768mb 
            --mode=global 
            --constraint 'engine.labels.serverType == dev' 
            --env appName="${SUB_DNS}" 
            --name="${SUB_DNS}" 
            --restart-condition on-failure --restart-max-attempts 5 
            --with-registry-auth 
            ${DOCKER_REGISTRY}/${DOCKER_USER}/${APPNAME}:${VERSION}

另外我每次尝试登录时都会出现此错误,它会自动注销我的会话,不确定是否与错误有关无法设置本地主机

2017-11-08 03:25:56,771 [ INFO] AjaxTimeoutRedirectFilter - User session expired or not logged in yet
2017-11-08 03:25:56,771 [ INFO] AjaxTimeoutRedirectFilter - User session expired or not logged in yet
2017-11-08 03:25:56,778 [ INFO] AjaxTimeoutRedirectFilter - Redirect to login page
2017-11-08 03:25:56,778 [ INFO] AjaxTimeoutRedirectFilter - Redirect to login page
2017-11-08 03:30:36,822 [ INFO] AjaxTimeoutRedirectFilter - User session expired or not logged in yet
2017-11-08 03:30:36,822 [ INFO] AjaxTimeoutRedirectFilter - User session expired or not logged in yet

任何见解将不胜感激。谢谢。

"缓存 - 无法设置本地主机"似乎是来自 EHCache 项目的常见错误消息。在代码中找到这一点表明,这是调用 Java 网络库的 java.net.InetAddress.getLocalHost() 方法的结果,该方法查找本地主机名,然后尝试将其 DNS 解析为 IP 地址。

快速的本地测试表明,这适用于我的单节点 Swarm 上的docker run和服务。鉴于您提到测试 DNS,也许此时需要有关您的特定 Swarm 设置(特别是网络)的更多信息,以了解您为什么会出现不同的行为。显然,如果您有自己的DNS,那么如上所述,容器的默认名称必须可以通过DNS查找解析,否则您将继续获得Java UnknownHostException

最新更新