由Docker组成should use npipe protocol on Windows by default,但事实并非如此。以下日志证明了这一点(Win 10 Pro 64位主机):
日志1:检索失败 Docker客户端和服务器主机的信息:无法连接 Docker守护程序位于unix:///var/run/docker.sock。是docker守护程序 跑步吗?
日志2:提供程序连接错误无法在以下位置连接到Docker守护程序 unix:///var/run/docker.sock。 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
,但是又失败了。
我在这里想念什么?