![](/img/trans.png)
[英]Spring Boot + docker-compose + MySQL: Connection refused
[英]Combining Spring boot and redis with docker-compose: Connection refused
我正在嘗試使用 spring 引導和 MongoDB 和 redis 來做一個基本的 docker 容器。Mongo 很好,但是無法在 redis 和 spring 引導之間建立連接,雖然我覺得配置沒問題
docker-compose.yml
version: "3.9"
services:
web:
build: .
ports:
- "1234:1234"
depends_on:
- redis
- db
db:
image: mongo
hostname: mongodb
ports:
- "27017:27017"
redis:
hostname: redis
image: redis
restart: always
ports:
- "6379:6379"
Dockerfile:
FROM adoptopenjdk:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
配置.java:
@Configuration
@EnableRedisRepositories
public class Config
{
RedisStandaloneConfiguration standaloneConfiguration() {
return new RedisStandaloneConfiguration("redis", 6379);
}
@Bean
JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory(standaloneConfiguration());
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
}
問題:所有容器在 docker 組合后都在運行。 但是spring和redis無法建立連接。
java.net.ConnectException: Connection refused (Connection refused)
slot-web-1 | at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
slot-web-1 | at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[na:na]
slot-web-1 | at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[na:na]
slot-web-1 | at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[na:na]
slot-web-1 | at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:na]
首先,如果你的容器在遠程服務器上,你可以在部署容器的服務器上使用te.net測試是否可以連接到redis的6379端口,如果可以,可以查看服務器是否開啟端口 6379,或白名單。 其次,可以嘗試在電腦上通過te.net連接容器redis的6379端口。 如果是,你可以檢查你的redis配置的ip、密碼、用戶名等信息是否正確。
如果您的 redis 服務器啟動晚於 spring 啟動,則可能會發生此錯誤。 確保 redis 首先通過以下命令啟動。
docker compose down && docker compose up -d redis && sleep 5 && docker compose up --build -d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.