Docker 无法设置本地主机。这将阻止创建GUID
我正在努力解决以下问题。我们有一个在Docker上正常运行的Java应用程序。现在,当我们尝试将应用程序迁移到Docker Swarm(将其作为服务运行)时,它总是抛出以下异常:Docker 无法设置本地主机。这将阻止创建GUID,docker,nginx,docker-swarm,Docker,Nginx,Docker Swarm,我正在努力解决以下问题。我们有一个在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.UnknownHostExcepti
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
我尝试了以下方法:
curl
针对我们正在使用的DNSnginx
配置 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}
此外,我每次尝试登录时都会遇到此错误,它会自动注销我的会话,不确定是否与无法设置localhost的错误有关
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
任何见解都将不胜感激。谢谢。缓存-无法设置本地主机看起来是来自的常见错误消息。在代码中找到它表明这是调用Java net库的Java.net.InetAddress.getLocalHost()
方法的结果,该方法查找本地主机名,然后尝试通过DNS将其解析为IP地址
一个快速的本地测试表明,这既适用于
docker运行
,也适用于我的单节点Swarm上的服务。如果您提到测试DNS,那么此时可能需要更多关于您的特定Swarm设置(特别是网络)的信息,以了解您为什么会有不同的行为。显然,如果你有自己的DNS,那么根据上面的说明,容器的默认名称必须可以通过DNS查找来解析,否则你将继续得到Java未知的HostException
你是如何启动/配置swarm和Java应用程序的,你能分享它们吗。编辑了我的帖子。我在这里介绍了如何启动服务。我更新了帖子,介绍了设置和如何运行服务。谢谢你的回复。