簡體   English   中英

無法在主機模式下連接到 docker 容器(redis)

[英]Cannot connect to docker container (redis) in host mode

這可能只是與 WSL 一般有關,但 Redis 是我的用例。

這工作正常,我可以像這樣連接: docker exec -it redis-1 redis-cli -c -p 7001 -a Password123

但是我無法從本地 Windows pc 到容器建立任何連接。 我得到

無法連接:連接到 host.docker.internal:7001 時出現錯誤 10061。 無法建立連接,因為目標機器主動拒絕它。

當容器未運行時,這是相同的錯誤,因此不確定這是 docker 問題還是 WSL?

version: '3.9'
  
services:     
  redis-cluster:
    image: redis:latest
    container_name: redis-cluster
    command: redis-cli -a Password123 -p 7001 --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1 --cluster-yes
    depends_on:
      - redis-1
      - redis-2
      - redis-3
      - redis-4
      - redis-5
      - redis-6
    network_mode: host
      

  redis-1:
    image: "redis:latest"
    container_name: redis-1

    network_mode: host

    entrypoint: >
      redis-server
      --port 7001
      --appendonly yes
      --cluster-enabled yes
      --cluster-config-file nodes.conf
      --cluster-node-timeout 5000
      --masterauth Password123
      --requirepass Password123
      --bind 0.0.0.0
      --protected-mode no

# Five more the same as the above

根據提供docker-compose.yml文件,容器端口未公開,因此無法從外部(您的 windows/wls 主機)訪問它們。 在這里查看官方參考。 更多關於 docker 和端口在這里

作為redis-1服務的示例,您應該在定義中添加以下內容。

...
redis-1:
  ports:
  - 7001:7001
  ...
...

docker exec ...正在工作,因為可以從容器內部訪問該端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM