来自守护程序的错误响应:无法识别的卷规范:无法映射文件“\\.\pipe\docker_engine”。该平台上只能映射目录

Owe*_*enc 10 named-pipes docker docker-compose traefik windows-container

我是码头工人的新手。欢迎任何帮助和提示。

\n

环境:

\n
    \n
  • Windows:Windows 10 专业版 21H1
  • \n
  • Docker 桌面:3.4
  • \n
\n

我可以毫无问题地运行 hello work 示例。但似乎我无法使用命名管道,无法弄清楚问题是什么。

\n

有些人提到命名管道仅适用于 Windows 服务器,但此博客(https://www.docker.com/blog/docker-windows-server-1709/)明确提到支持 Windows 10。

\n

docker版本输出:

\n
\xe2\x9d\xaf docker version\nClient:\n Cloud integration: 1.0.17\n Version:           20.10.7\n API version:       1.41\n Go version:        go1.16.4\n Git commit:        f0df350\n Built:             Wed Jun  2 12:00:56 2021\n OS/Arch:           windows/amd64\n Context:           default\n Experimental:      true\n\nServer: Docker Engine - Community\n Engine:\n  Version:          20.10.7\n  API version:      1.41 (minimum version 1.24)\n  Go version:       go1.13.15\n  Git commit:       b0f5bc3\n  Built:            Wed Jun  2 11:56:41 2021\n  OS/Arch:          windows/amd64\n  Experimental:     false\n
Run Code Online (Sandbox Code Playgroud)\n

YAML 文件:

\n
version: "2.4"\nservices:\n  traefik:\n    isolation: ${TRAEFIK_ISOLATION}\n    image: ${TRAEFIK_IMAGE}\n    command:\n      - "--ping"\n      - "--api.insecure=true"\n      - "--providers.docker.endpoint=npipe:////./pipe/docker_engine"\n      - "--providers.docker.exposedByDefault=false"\n      - "--providers.file.directory=C:/etc/traefik/config/dynamic"\n      - "--entryPoints.websecure.address=:443"\n    ports:\n      - "443:443"\n      - "8079:8080"\n    healthcheck:\n      test: ["CMD", "traefik", "healthcheck", "--ping"]\n    volumes:\n      - source: \\\\.\\pipe\\docker_engine\n        target: \\\\.\\pipe\\docker_engine\n        type: npipe\n      - ./traefik:C:/etc/traefik\n    depends_on:\n      id:\n        condition: service_healthy\n      cm:\n        condition: service_healthy\n  .......\n
Run Code Online (Sandbox Code Playgroud)\n

如果我删除了卷中的命名管道,我可以创建容器,然后出现不同的错误:

\n
time="2021-06-17T06:32:13+08:00" level=error msg="Provider connection error error during connect: This error may indicate that the docker daemon is not running.: Get \\"http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version\\": open //./pipe/docker_engine: The system cannot find the file specified., retrying in 7.701954985s" providerName=docker\n
Run Code Online (Sandbox Code Playgroud)\n

其余容器运行正常。

\n

docker 组合输出:

\n
\xe2\x9d\xaf docker compose up\n[+] Running 10/11\n - Network sitecore-xp0_default                     Created                                                        1.1s\n - Container sitecore-xp0_mssql_1                   Created                                                        0.5s\n - Container sitecore-xp0_solr_1                    Created                                                        0.5s\n - Container sitecore-xp0_id_1                      Created                                                        0.4s\n - Container sitecore-xp0_solr-init_1               Created                                                        0.3s\n - Container sitecore-xp0_xconnect_1                Created                                                        0.3s\n - Container sitecore-xp0_cortexprocessingworker_1  Created                                                        0.6s\n - Container sitecore-xp0_xdbautomationworker_1     Created                                                        0.6s\n - Container sitecore-xp0_xdbsearchworker_1         Created                                                        0.9s\n - Container sitecore-xp0_cm_1                      Created                                                        0.9s\n - Container sitecore-xp0_traefik_1                 Creating                                                       0.2s\nError response from daemon: Unrecognised volume spec: file \'\\\\.\\pipe\\docker_engine\' cannot be mapped. Only directories can be mapped on this platform\n
Run Code Online (Sandbox Code Playgroud)\n

小智 16

使用 Docker Compose V2 时会出现此错误。关闭 Docker Desktop 设置中的选项或使用 CLI 命令docker-compose disable-v2


小智 3

我遇到了同样的错误,我的解决方案是在末尾添加一个 \ 。

参考:https://sitecore.stackexchange.com/a/31522/11642