如何将我的 Spring Boot 应用程序连接到 Docker 上的 Redis 容器?

Posted

技术标签:

【中文标题】如何将我的 Spring Boot 应用程序连接到 Docker 上的 Redis 容器?【英文标题】:How to connect my spring boot app to redis container on docker? 【发布时间】:2020-05-29 16:27:34 【问题描述】:

我创建了一个 spring 应用程序,我想将它连接到部署在 docker-compose 上的 redis 服务器,我将所需的属性设置如下: spring.redis.host=redis spring.redis.port=6379

但我不断收到 ConnexionException,所以我怎么知道 redis 在哪个主机上运行以及如何连接到它。

这是我的 docker-compose 文件:

version: '2'
services:

redis:
   image: 'bitnami/redis:5.0'
   environment:
    # ALLOW_EMPTY_PASSWORD is recommended only for development.
    - ALLOW_EMPTY_PASSWORD=yes
    - REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL
   ports:
    - '6379:6379'
   volumes:
    - 'redis_data:/bitnami/redis/data'

卷: redis_data: 司机:本地

【问题讨论】:

发布错误日志 检查是否可以从运行 Spring 代码的位置访问 Redis 实例。示例 - ***.com/questions/9866541/… 【参考方案1】:

来自码头工人撰写documentation

默认情况下,Compose 会为您的应用设置一个网络。服务的每个容器都加入默认网络,并且该网络上的其他容器都可以访问,并且它们可以通过与容器名称相同的主机名发现

如果您想通过容器名称(本例中为“redis”)访问 redis,Spring boot 应用程序也已部署为 docker compose 服务,但它不会出现在您的 docker-compose 文件中已经在问题中提供了,所以请添加它。

或者,如果您尝试在主机上运行 spring boot 应用程序,请使用“localhost”而不是“redis”来访问 redis 容器。

【讨论】:

以上是关于如何将我的 Spring Boot 应用程序连接到 Docker 上的 Redis 容器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在弹性beantalk中将PostgreSQL RDS连接到spring boot?

Maven Spring Boot 尝试连接到 MySQL

Angular 无法连接到 docker compose 中的 Spring Boot 端点

无法将 Spring Boot 应用程序连接到 IBM Informix 数据库

是否可以将 Spring Boot 应用程序部署到 App Engine 并连接到数据库?

当我将 Spring Boot 应用程序部署到 AWS Elastic Beanstalk 并且无法从本地 Spring Boot 连接到 RDS 时出现 502 错误网关