【发布时间】:2021-09-30 12:29:23
【问题描述】:
我是 Docker 新手。我正在构建一个部署在 Docker 上的 Spring Boot 应用程序。
这是我的例子docker-compose.yml:
version: "3"
services:
user:
container_name: user
image: user-service
build:
context: user-api/
ports:
- "3001:8000"
restart: always
volumes:
- /home/ubuntu/logs/user_service:/opt/app/logs
networks:
- api_network
cms:
container_name: cms
image:cms-service
build:
context: cms-service/
ports:
- "3003:8000"
restart: always
volumes:
- /home/ubuntu/logs/cms_service:/opt/app/logs
networks:
- api_network
networks:
api_network:
driver: bridge
在服务器机器中,有一个在 Ubuntu 上运行的 Redis 服务器。我无法将 Docker 容器中的 Redis 服务器连接到主机。
这是我在 application.properties
中的 redis 配置spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=Password123!@#
我也尝试将本地主机更改为
- 127.0.0.1
- 172.17.0.1
- 0.0.0.0
- 主持人
- host.docker.internal
这是我在网上找到的。但没有任何效果。我是否需要专门配置任何东西以允许我在 Docker 中的 Spring Boot 服务连接到在 localhost 上运行的 Redis。
【问题讨论】:
-
@РоманСергеевич extra_hosts: - "host.docker.internal:host-gateway" 不适合我。
-
尝试添加 extra_hosts: - "localhost:127.0.0.1" 里面 docker-compose 仍然无法正常工作。
-
Redis 服务器非常轻量级;您可以将 Redis 容器添加到您的
docker-compose.yml,而不是尝试超出 Docker 空间吗? Docker 中的localhost通常表示“这个容器”(因此在这个问题中,localhost具有三种不同的上下文特定含义)。 -
@DavidMaze 感谢您的建议。我会和 Infra 团队讨论这个问题。
标签: spring docker docker-compose redis