42

如果我在 boot2docker 中键入以下命令,如 docker 网站所示:

curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

当我键入以下命令检查安装是否成功时,我得到:

/usr/local/bin/docker-compose: line 1: syntax error: unexpected newline

那么,如何在 boot2docker 上安装 docker-compose 呢?

4

10 回答 10

46

2021 年更新:docker-compose 已在 Go 中重写,现在是一个docker 命令docker compose

因此,不再需要“安装”它。
docker compose


2018 年 11 月 7 日更新:

在 Docker for Mac 和 Windows 等桌面系统上,Docker Compose 包含在这些桌面安装中。

根据文档Docker for WindowsDocker Toolbox已经包含 Compose 以及其他 Docker 应用程序,因此大多数 Windows 用户不需要单独安装 Compose。


2017 年更新:现在使用"Docker for Windows"正式管理(适用于支持 Hyper-V 的 Windows 10) 。
请参阅“为 Windows 安装 Docker ”。
它确实有一个用于 Docker 的巧克力安装,所以:

choco install docker-for-windows 
# or
choco upgrade docker-for-windows 

同样,这需要 64 位 Windows 10 专业版、企业版和教育版(1511 年 11 月更新,内部版本 10586 或更高版本)和 Microsoft Hyper-V。

对于其他 Windows,您仍然需要 VirtualBox + Boot2Docker。


更新:docker compose 1.5(2015 年 11 月)应该使其正式可用于 Windows(自 RC2 起)。

PR 2230PR 2143 之类的拉取请求有所帮助。
提交 13d5efc详细介绍了 Windows 二进制文件的官方构建过程。


原始答案(2015 年第一季度至第三季度)。

警告:根据Ed Morley ( )的说法,下面的原始答案(“docker-compose在容器中”)似乎有一个错误。edmorley

“容器中的 docker-compose”方法似乎存在缓存问题(参见问题 #6:“未检测到对 docker-compose.yml 和 Dockerfile 的更改”

埃德建议

就目前而言,在内部运行 Pythondocker-composeboot2docker似乎是 Windows 用户最可靠的解决方案(已经花费了很多时间来尝试与替代方案作斗争)

要从 PyPI 安装 docker-compose,请从内部运行boot2docker

docker@boot2docker:~$ 
tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py | \
  sudo python - && sudo pip install -U docker-compose

为了节省每次boot2docker重新启动 VM 时都必须运行上述内容(因为更改不会持续存在),您可以bootlocal.sh像这样使用:

docker@boot2docker:~$ 
echo 'su docker -c "tce-load -wi python" && \
  curl https://bootstrap.pypa.io/get-pip.py | \
  python - && pip install -U docker-compose' | \ 
  sudo tee /var/lib/boot2docker/bootlocal.sh > /dev/null && \
  sudo chmod +x /var/lib/boot2docker/bootlocal.sh

su docker -c体操是必需的,因为tce-load不能运行为root,并且bootlocal.sh运行为root。一旦#915被修复,应该不需要chmodof 。如果需要追加而不是覆盖,请 添加到命令中。)bootlocal.sh
-ateebootlocal.sh

如果您希望使用 docker-compose 的预发布版本,请替换pip install -U docker-composepip install -U docker-compose>=1.3.0rc1或等效版本。


原答案:

我还docker-compose通过以下方式在图像中运行(在 Windows boot2docker 上):

从那里,一个 ' dc up' 或 ' dc ps' 就可以了。在 Windows 上。使用 boot2docker 1.6。

于 2015-04-19T11:07:05.590 回答
11

还有另一种使用 Babun(具有各种增强功能的 Cygwin shell 的著名端口,包括包管理器)在 Windows 下运行 docker-compose 的解决方案。

方法如下:

1.) 安装 Babun 2.) 打开它并安装 Python 和 Pip 所需的依赖项:

pact install python-setuptools 
pact install libxml2-devel libxslt-devel libyaml-devel
curl -skS https://bootstrap.pypa.io/get-pip.py | python
pip install virtualenv
curl -skS https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

3.) 最后运行

pip install -U docker-compose

解决方案不是我的,取自这里:http ://habrahabr.ru/post/260329/

我有一个强烈的意见,docker-compose 必须安装在主机上,而不是 boot2docker 虚拟机上,所以你不需要一直 ssh。

于 2015-07-30T09:50:11.060 回答
7

您可以使用 pip 在 Windows 上安装 docker-compose:

pip install -U docker-compose
于 2015-05-05T18:53:54.507 回答
6

在 Windows 上安装 Docker Compose(和 Docker)的最简单方法是使用Chocolatey(Windows 的包管理器)包docker-compose,它应该在包docker之后安装。这将使您在手动安装时摆脱许多障碍,并为您提供更新安装的简单方法。

如果您不熟悉巧克力,只需安装它- 例如在管理命令行上:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

现在安装了巧克力,唯一剩下的就是启动管理 Powershell 并执行以下操作:

choco install docker
choco install docker-compose

作为旁注:你不再需要 Boot2Docker 来在 Windows 上运行 Docker - Docker 原生支持 Windows已经有一段时间了。所以不再需要那个了。

于 2017-05-22T09:52:27.093 回答
5

似乎他们还没有在 Windows 版本的 Boot2Docker 中添加原生支持。

因此,目前,您可以像之前使用 fig 一样使用 docker-compose:将其作为 docker 容器运行

于 2015-03-30T10:03:12.873 回答
5

boot2docker版本 >=1.7.0 有 64 位用户空间。这意味着来自其 github 存储库的预构建二进制文件是开箱即用的。

我已经使用上面 VonC 答案中的信息编写了一个脚本,该脚本下载最新版本(或特定版本,请参阅代码中的注释部分)并保留它。它只会下载一次文件,但它会在每次启动boot2docker.

指示:

  1. boot2docker ssh从任何终端。
  2. 粘贴脚本并按回车。
  3. exit然后运行boot2docker restart && boot2docker ssh
  4. 当盒子重新启动时,运行docker-compose以查看它是否响应其命令列表。

在 Windows 上,该boot2docker restart命令有第一次失败的趋势。但这只是再次运行该命令。

echo 'if [ ! -f /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m` ]; then
    echo "Download docker-compose..."
    # Download latest version
    curl -L https://github.com/docker/compose/releases/download/$(curl -s -L https://github.com/docker/compose/releases/latest | \
        grep -Eo -m 1 docker/compose/releases/tag/\([0-9.]*\) | \
        grep -o [0-9.]*)/docker-compose-`uname -s`-`uname -m` \
    > /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m`
    # Download fixed version
    # curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` \
    # > /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m`
    echo "Done!"
fi
echo "Install docker-compose on path..."
cp /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m` /usr/local/bin/docker-compose &&
chmod +x /usr/local/bin/docker-compose
echo "Done!"
' | sudo tee /var/lib/boot2docker/bootlocal.sh > /dev/null && \
sudo chmod +x /var/lib/boot2docker/bootlocal.sh
于 2015-07-10T07:20:37.857 回答
4

事情取得了进展,最近,我使用以下方法取得了最大的成功,它允许您使用 Docker 在 Windows 上本地运行它。

首先,您需要安装适用于 Windows 的 Docker CLI:

curl -L https://get.docker.com/builds/Windows/x86_64/docker-latest.exe > /usr/bin/docker
chmod +x /usr/bin/docker

接下来,从 Github 存储库构建 docker-compose 映像:

docker build -t docker-compose github.com/docker/compose

然后,只需设置一个别名来运行容器:

alias docker-compose='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'

我已经使用它一段时间了,没有遇到任何问题——功能正是你所期望的,就像在本地使用二进制文件一样,你只需要确保你的共享文件夹正确映射到B2D/Docker 机器虚拟机。我发现最容易镜像虚拟机中的路径,因为它们在主机上,所以我的 docker-compose.yml 文件并不那么令人困惑。

于 2015-07-13T16:02:53.880 回答
4

在 github 上关注此问题后获得了成功

  • 安装码头机器
  • 安装python(3.4.3工作正常)
  • 安装点子
  • 在 pip... 运行此命令以安装 docker-compose 之后:

    `pip install git+git://github.com/docker/compose.git`
    

不相信?看这个证明

于 2015-10-31T06:18:50.977 回答
3

https://github.com/docker/compose/releases/tag/1.5.0rc3 “Compose 现在可用于 Windows。”

于 2015-11-01T18:53:01.610 回答
2

这是我将 Compose 安装在boot2docker. 如果有人愿意接受 VonC 的建议,即从容器内针对其主机的 Docker 主机运行 Compose,我创建了一个熟练开发人员的容器,该容器遵循 Compose 的指导方针并且易于安装和运行。

如果你在 Windows 上有一个类似 Bourne shell 的环境,你可以简单地运行:

curl -L https://git.io/vuEqk -o /usr/local/bin/room
chmod +x /usr/local/bin/room

您可以在任何路径上启动一个容器,然后通过简单地运行从那里获取它:

room

您可以选择传递命令参数,因此如果您发现自己位于具有 Compose 配置文件的工作目录中,这足以让所有内容启动并运行:

room docker-compose up

如果您缺少支持性的 shell 环境,安装一个包含 Git Bash 提示符的 Windows Git 发行版就足够了,或者您可以直接使用来自MinGWCygwin之一的提示符。如果没有,您可以随时通过 SSH 连接到您的 Docker 机器并在那里安装。

于 2016-01-06T12:57:22.403 回答