Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复docker compose中绝地武士的连接拒绝错误?_Java_Docker_Redis_Docker Compose_Jedis - Fatal编程技术网

Java 如何修复docker compose中绝地武士的连接拒绝错误?

Java 如何修复docker compose中绝地武士的连接拒绝错误?,java,docker,redis,docker-compose,jedis,Java,Docker,Redis,Docker Compose,Jedis,我正在用redis服务器和java应用程序设置docker compose,当redis在docker compose中运行时,我的代码工作正常 在主机操作系统中使用外部java程序 但当我将java程序放入容器中时,我得到了 java.net.ConnectException:连接被拒绝 Redis cli 127.0.0.1:6379>也工作正常 try { Thread.sleep(3000); jedis = new J

我正在用redis服务器和java应用程序设置docker compose,当redis在docker compose中运行时,我的代码工作正常 在主机操作系统中使用外部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

尝试显式指定网络,添加
取决于
,以确保redis在工作人员需要时启动

version: "3.7"
services:

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

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

networks:
  net:
新绝地(“redis”,6379)创建
绝地
实例

您可能想了解更多关于和的信息


您还可以尝试在不使用compose的情况下运行示例,然后将其转换为compose配置。这里没有docker compose。

尝试显式指定网络,添加
取决于
,以确保redis在工作人员需要时启动

version: "3.7"
services:

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

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

networks:
  net:
新绝地(“redis”,6379)创建
绝地
实例

您可能想了解更多关于和的信息


您还可以尝试在不使用compose的情况下运行示例,然后将其转换为compose配置。这里没有docker compose。

您是否在同一个compose中对redis和java应用程序进行内容化?如果没有,它们可能没有连接到同一个网络,这就是为什么redis主机不能工作的原因。是的,在同一个组合中…我如何在docker compose中配置redis主机以及java-app。您是否在同一个组合中对redis和java app进行上下文化?如果没有,它们可能没有连接到同一个网络,这就是为什么redis主机不能工作的原因。是的,在同一个组合中…如何在docker compose中配置redis主机以及java应用程序。