如何将我的 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 容器?的主要内容,如果未能解决你的问题,请参考以下文章