Docker Compose (docker-compose) 无法连接到 Windows Server 2016 TP5 上的 docker 守护进程

Posted

技术标签:

【中文标题】Docker Compose (docker-compose) 无法连接到 Windows Server 2016 TP5 上的 docker 守护进程【英文标题】:Docker Compose (docker-compose) couldn't connect to docker daemon on Windows Server 2016 TP5 【发布时间】:2016-10-02 01:37:09 【问题描述】:

我正在尝试让 docker-composeWindows Server 2016 TP5 上工作。我已经安装了 Docker Desktop for Windows(不是 Docker Toolbox)作为服务,它运行良好。我已经从https://dl.bintray.com/docker-compose/master/ 下载了最新的 docker-compose for windows 并将其放在与 Docker 相同的路径中(取消阻止下载的文件并将其重命名为 docker-compose.exe。

当我运行 docker-compose up(在 Powershell 中以管理员身份)时,我收到以下错误:

错误:无法连接到 Docker 守护程序。您可能需要安装 码头工人:

https://docs.docker.com/engine/installation/

这里是我机器上的dockerdocker-compose信息:

码头工人:

Client:
Version:      1.12.1
API version:  1.24
Go version:   go1.6.3
Git commit:   23cf638
Built:        Thu Aug 18 17:52:38 2016
OS/Arch:      windows/amd64

Server:
Version:      1.12.1
API version:  1.24
Go version:   go1.6.3
Git commit:   23cf638
Built:        Thu Aug 18 17:52:38 2016
OS/Arch:      windows/amd64

Docker 编写:

docker-compose version 1.9.0dev, build f65f89a

【问题讨论】:

我还尝试使用 chocolatey 安装 docker-compose。它安装docker-compose version 1.8.1, build 004ddae。这也不起作用,运行 docker-compose up 显示完全相同的错误。 只要重启docker,这个问题就解决了! 【参考方案1】:

您可能想尝试设置您的DOCKER_HOST

$ENV:DOCKER_HOST="npipe://\\.\pipe\docker_engine"

或者,在注册引擎时,您也可以让它监听 TCP:

dockerd.exe -H npipe:////./pipe/docker_engine -H localhost:2375 --register-service

这个Compose issue有更多细节

【讨论】:

谢谢@friism。我之前找到了你的文章:blog.docker.com/2016/09/…,我做了和你在文章和这里解释的完全一样的事情,除了我先取消注册服务。有效。但是,我遇到了另一个与网络有关的问题。我意识到在 Windows 上使用 docker-compose 仍然是一个未解决的问题:github.com/docker/compose/issues/3252 @moriazat 那是因为您使用的是 TP5。在 RTM(以及所有最新的 Windows 更新)上,docker-compose 完全适用于单个主机。在此处下载免费的 RTM 评估:microsoft.com/en-us/evalcenter/evaluate-windows-server-2016

以上是关于Docker Compose (docker-compose) 无法连接到 Windows Server 2016 TP5 上的 docker 守护进程的主要内容,如果未能解决你的问题,请参考以下文章

docker compose 的安装和入门实战

如何使用 socks5 代理制作 docker-compose 拉图像?

Docker + fig / compose + nginx + node.js + mysql + redis

在 docker-compose 中使用 MySQL 初始化 Hibernate 时连接被拒绝

如何将 Nginx 反向代理到本地托管(在具有 ssh 访问权限的服务器上)docker-compose

Dgraph安装以及使用1