【问题标题】:Docker-compose does not install or run properly on boot2dockerDocker-compose 无法在 boot2docker 上安装或正常运行
【发布时间】:2015-07-30 15:25:29
【问题描述】:

我已经在我的 Windows 计算机上成功安装了 docker-machine,并且我可以在我的 windows 机器上使用 Docker CLI 在 boot2docker VM 上运行 docker 命令。

我有 docker-machine 版本 0.2.0 和 docker 1.6.2,当我在其上运行“uname -r”时,VM 会产生“4.0.3-boot2docker”。

现在我想安装 docker-compose 来管理 boot2docker 虚拟机。 docker-compose 是否像 docker 一样在我的 Windows 机器上运行并“远程”管理 VM,还是我必须将其安装在 VM 本身上?

在相关说明中,我尝试通过执行以下操作在我的 VM 上安装 docker-compose:

C:\ docker-machine ssh dev
$ whoami
docker
$ sudo -i
# curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# exit
$ which docker
/usr/local/bin/docker
$ which docker-compose
/usr/local/bin/docker-compose

这很好,但是当我尝试运行 docker-compose 时它不起作用。

$ docker-compose up
-sh: docker-compose: not found

文件在/usr/local/bin,和docker拥有完全相同的权限。

docker@dev:/usr/local/bin$ ls -al do*
-rwxr-xr-x    1 root     root      15443675 May 13 21:24 docker
-rwxr-xr-x    1 root     root       5263681 May 19 00:09 docker-compose
docker@dev:/usr/local/bin$

我有什么遗漏吗?

【问题讨论】:

  • 当你运行/usr/local/bin/docker-compose 时会发生什么?
  • 同样的事情.... -sh: docker-compose: not found
  • Docker Compose 通过查看本地计算机上定义的$DOCKER_HOST URL“远程”运行(如您所说)。通过更改此变量,您将针对在该 URL 上运行的 Docker 守护程序运行 docker-compose 命令。因此,您不必在 VM 上安装 Docker Compose;它是一个开发工具,应该驻留在您的本地开发机器上。

标签: docker boot2docker docker-compose


【解决方案1】:

仔细查看curl 输出。下载网址似乎不再有效。我发现了

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-Linux-x86_x64

给了

{"error":"Not Found"}

对我来说,当前的release 1.3.2 运行良好,即:

curl -L https://github.com/docker/compose/releases/download/1.3.2/docker-compose-Linux-x86_x64

注意:在当前 CoreOS 上使用时,不要尝试在 /usr/local/bin/docker-compose 中输出,如 here 所述。而是使用/opt/bin/docker-compose(可能需要先创建目录),即

mkdir -p /opt/bin
curl -L https://github.com/docker/compose/releases/download/1.3.2/docker-compose-Linux-x86_x64 > /opt/bin/docker-compose

【讨论】:

    【解决方案2】:

    您也可以在您的 Windows 主机上安装 docker-compose。 它将远程管理您的 docker。您可以将 docker-compose 视为 docker 的一个更抽象的接口。

    运行boot2docker init 后,运行boot2docker shellinit | Invoke-Expression。这将告诉 docker 和 docker-compose docker 服务器在哪里运行。

    有关在 Windows 上安装它的更多信息可以在这里找到:http://docs.docker.com/installation/windows/

    【讨论】:

    • AFAIK 没有适用于 Windows 的 docker-compose 二进制文件。我知道选项:1)将 docker-compose 作为容器运行,2)通过 pip 构建 python(由于缺少依赖项,它在 Windows 上不起作用)。你的意思是 1) 以某种方式集成到 boot2docker 中?
    • 我从未在 Windows 上运行过 docker 或 docker-compose。但是 docker-compose 是作为可通过 pip 安装的 python 包发布的。所以我认为就像在其他 SO 上一样运行“pip install docker-compose”。
    • 不,python 二进制文件由于缺少依赖项而无法安装
    【解决方案3】:

    我发现下载链接不适用于旧版本,并且“安装”会静默失败,从而导致您描述的问题。在此处查看当前版本的下载链接:

    https://github.com/docker/compose/releases

    就像 mkoertgen 所说,您始终可以在终端中查看 curl 命令的输出,看看您没有得到“未找到”或类似的东西,或者运行 cat /usr/local/bin/docker-compose 来验证它不是包含“未找到”的文本文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2015-06-08
      • 2012-03-29
      • 1970-01-01
      • 2018-01-14
      • 2017-12-18
      相关资源
      最近更新 更多