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-compose 在 Windows 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/
这里是我机器上的docker和docker-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 守护进程的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 socks5 代理制作 docker-compose 拉图像?
Docker + fig / compose + nginx + node.js + mysql + redis
在 docker-compose 中使用 MySQL 初始化 Hibernate 时连接被拒绝