繁体   English   中英

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

[英]How to fix connection refused error in Jedis in docker-compose?

当redis在docker-compose内部运行时,我正在使用Redis服务器和Java应用程序设置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实例new Jedis("redis", 6379);

您可能想了解有关服务之间的 组合依赖关系的更多信息。

您也可以尝试在没有撰写的情况下运行示例,然后将其转换为撰写配置。 这是一个没有docker compose 的网络配置示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM