Docker-compose should use npipe protocol on Windows by default,但它没有 . 以下日志证明(Win 10 pro 64位主机):

日志1:无法检索docker客户端和服务器主机的信息:无法连接到unix:///var/run/docker.sock上的Docker守护程序 . docker守护程序是否正在运行?日志2:提供程序连接错误无法连接到unix:///var/run/docker.sock上的Docker守护程序 . docker守护程序是否正在运行?

正如您在日志中看到的那样,尝试使用: unix:///var/run/docker.sock . 这是一个UNIX套接字而不是管道(命名管道),Windows完全可以理解 .

好的,所以docker-compose的默认配置有问题 . 让我们显式设置管道,而不是UNIX套接字(using npipe of the long syntax):

#docker-compose.yml

version: '3.2'

services:

  traefik:
    image: traefik
    command: --api --docker
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - type: npipe                # here we are
        source: ./pipe
        target: /pipe/docker_engine

但猜猜怎么了?我们得到相同的UNIX套接字错误 .

我也试过了: - ./pipe/docker_engine://./pipe/docker_engine ,但又失败了 .

我在这里错过了什么?