我有一个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机器上运行码头容器
发布于 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主机。
https://stackoverflow.com/questions/62083965
复制相似问题