簡體   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