gpt4 book ai didi

java - 如何修复 docker-compose 中 Jedis 中的连接被拒绝错误?

转载 作者:可可西里 更新时间:2023-11-01 11:23:22 24 4
gpt4 key购买 nike

我正在使用 redis 服务器和 java 应用程序设置 docker-compose,当 redis 在 docker-compose 中运行时,我的代码工作正常在 HOST OS 中使用外部 java 程序。

但是当我将 java 程序放入容器中时,我得到了
java.net.ConnectException: 连接被拒绝

Redis-cli 127.0.0.1:6379> 也工作正常


try {
Thread.sleep(3000);

jedis = new Jedis("localhost");
this.restTemplate = new RestTemplate();
startWorking();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

当使用“redis”而不是“localhost”时,它会给我来自外部 docker-compose 的未知主机错误,并且在 docker-compose 内部拒绝连接

这是我的 dockercompose.yml

 redis:
image: redis
ports:
- "6379:6379"

worker:
build: worker

最佳答案

尝试明确指定网络并添加 depends_on 以确保 redis 在工作人员需要时启动。

version: "3.7"
services:

worker:
build: worker
networks:
- net
depends_on:
- redis

redis:
image: redis
ports:
- "6379:6379"
networks:
- net

networks:
net:

使用 new Jedis("redis", 6379); 创建 jedis 实例。

您可能想阅读有关 networking in compose 的更多信息和 dependencies between services .

您也可以尝试在不使用 compose 的情况下运行示例,然后将其转换为 compose 配置。这是 an example of network configuration没有 docker compose。

关于java - 如何修复 docker-compose 中 Jedis 中的连接被拒绝错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57135067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com