如何在Windows上安装docker-compose

时间:2015-03-26 22:07:15

标签: windows docker boot2docker docker-compose

如果我在booterdderer中输入以下命令,如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?

10 个答案:

答案 0 :(得分:42)

2018年11月7日更新:

  

在Docker for Mac和Windows等桌面系统上,Docker Compose是   作为桌面安装的一部分包含在内。

Accordingly to the documentation Docker for Windows Docker Toolbox 已经包含Compose和其他Docker应用程序,因此大多数Windows用户不需要单独安装Compose。


2017年更新:现在正在使用"Docker for Windows"正式管理(适用于支持Hyper-V的Windows 10) 请参阅" Install Docker for Windows"。
它确实有chocolatey次安装package for Docker,所以:

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

同样,这需要64位Windows 10 Pro,Enterprise和Education(1511年11月更新,Build 10586或更高版本)和Microsoft Hyper-V。

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


更新:docker compose 1.5(2015年11月)应该正式提供给Windows(自RC2以来)。

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


原始答案(2015年第1季度至第3季度)。

警告:根据Ed Morley (edmorley),原始答案(" docker-compose在容器")中似乎有错误。

  

" docker-compose在容器中似乎存在缓存问题"方法(见issue #6: "Changes to docker-compose.yml and Dockerfile not being detected"

Ed recommends

  

就目前而言,在docker-compose中运行Python boot2docker软件包似乎是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投放。chmod #915修复后,bootlocal.sh应该是不必要的   如果您需要附加,而不是覆盖-a,请将tee添加到bootlocal.sh命令。)

     

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


原始答案:

我还在图片中运行docker-compose(在Windows boot2docker上):

从那里开始,{' dc up'或者' dc ps'只是工作。在Windows上。使用boot2docker 1.6。

答案 1 :(得分: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 VM上,所以你不需要一直ssh。

答案 2 :(得分:6)

您可以使用pip:

在Windows上安装docker-compose
lambda

答案 3 :(得分:5)

似乎他们尚未在Windows版本的Boot2Docker中添加本机支持。

目前,您可以使用docker-compose作为您之前使用fig的方式:run it as a docker container

答案 4 :(得分:5)

boot2docker个版本> = 1.7.0 have 64 bits userspace。这意味着来自their github repository的预建二进制文件开箱即用。

我已使用VonC's answer above中的信息编写了一个脚本,用于下载最新版本(或特定版本,请参阅代码中的注释部分)并保留它。它只会下载一次文件,但会在boot2docker的每次启动时将其放在路径上。

说明:

    来自任何航站楼的
  1. boot2docker ssh
  2. 粘贴脚本并按Enter键。
  3. exit然后运行boot2docker restart && boot2docker ssh
  4. 重新启动此框后,运行docker-compose以查看它是否以其命令列表作出响应。
  5. 在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
    

答案 5 :(得分: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-Machine VM。我觉得最简单的方法是镜像VM中的路径,因为它们在主机上,所以我的docker-compose.yml文件并不那么令人困惑。

答案 6 :(得分:4)

我在this issue on github

之后取得了成功
  • 安装docker-machine;
  • 安装python(3.4.3正常工作)
  • 安装pip;
  • 在pip之后
  • 运行此命令以安装docker-compose:

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

不相信? watch this proof

答案 7 :(得分:3)

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

答案 8 :(得分:3)

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

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

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

现在已经安装了chocolatey,剩下的唯一事情是启动管理Powershell并执行:

choco install docker
choco install docker-compose

作为旁注:你不再需要Boot2Docker来在Windows上运行Docker - install it一段时间了。所以不再需要了。

答案 9 :(得分:2)

这是我在boot2docker内安装Compose的首选答案。如果有人愿意接受VonC建议在容器内对主机的Docker主机运行Compose,我已经创建了一个遵循Compose指南并且易于安装和运行的熟练工developer's container

如果您在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 Machine并安装到那里。