首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用主机网络模式时,Docker没有公开容器外的应用程序,但是它在容器中工作得很好。

当使用主机网络模式时,Docker没有公开容器外的应用程序,但是它在容器中工作得很好。
EN

Stack Overflow用户
提问于 2020-05-29 10:34:03
回答 1查看 932关注 0票数 0

我有一个spring引导应用程序,它在内部调用redis。我让redis运行在6379内部的docker容器上(也可以通过redis客户端访问外部容器),但是当我按下面的方式公开应用程序时,它会抱怨redis连接失败。运行在8086

停靠程序运行-d --名称为containerName -p 8086:8086容器名称:-p:version,但应用程序可以从浏览器作为http://localhost:8086访问,但是,当像下面这样运行with -net= host时,它可以很好地处理警告:当使用主机网络模式时,已发布的端口被丢弃。

docker运行--rm -it -d --net=host --发布-all=true-name containerName -d:version

但是,应用程序无法从浏览器http://localhost:8086访问。

异常堆栈跟踪

线程“池-2-线程-1”org.springframework.data.redis.RedisConnectionFailureException:中的异常不能获得Jedis连接;嵌套的异常是redis.clients.jedis.exceptions.JedisConnectionException:无法从org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:282) at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:476) at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:134)的池中获取资源。

由: java.base/java.net.PlainSocketImpl.socketConnect(Native方法引起的:java.net.ConnectException:连接拒绝(连接拒绝))

备注:我在windows机器上运行码头容器

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 14:54:57

我已经分别运行了redis和application容器,所以下面是解决方案

1: redis运行在6379码头运行rm -it -名称redis -p 6379:6379 redis

2:我的服务(在引擎盖下使用redis )需要配置redis主机,因为spring.redis.host=redis这里的redis只不过是redis容器的名称。

docker run -rm -d -链接redis -名称阅读器-p 8086:8086 imageName:version

我可以在这里访问浏览器http://localhost:8086的应用程序--链接redis可以映射redis主机。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62083965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档