如何在Windows上安装docker-compose

Chr*_*ris 33 windows docker boot2docker docker-compose

如果我在booterdd中键入以下命令,如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
Run Code Online (Sandbox Code Playgroud)

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

/usr/local/bin/docker-compose: line 1: syntax error: unexpected newline
Run Code Online (Sandbox Code Playgroud)

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

Von*_*onC 42

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).
请参阅" 安装Docker for Windows ".
它有一个用于Docker巧克力安装,因此:

choco install docker-for-windows 
# or
choco upgrade docker-for-windows 
Run Code Online (Sandbox Code Playgroud)

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

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


更新:docker撰写1.5(2015年11月)应该使其正式可用于Windows(自RC2以来).

PR 2230PR 2143等拉动请求有所帮助.
Commit 13d5efc详细介绍了Windows二进制文件的正式构建过程.


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

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

"docker-compose in a container"方法似乎存在缓存问题(请参阅问题#6:"对docker-compose.yml和Dockerfile的更改未被检测到")

Ed建议:

就目前而言,在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
Run Code Online (Sandbox Code Playgroud)

为了节省每次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
Run Code Online (Sandbox Code Playgroud)

(su docker -c体操是必需的,因为tce-load不能运行root,并且bootlocal.sh运行为root.一旦#915被修复chmod,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.

  • 你甚至不需要克隆repo,只需要`docker build -t docker-compose github.com/docker/compose`和docker将克隆并构建存储库 (5认同)
  • @tiagoperes感谢您的编辑! (2认同)

Ros*_*siv 11

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

方法如下:

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
Run Code Online (Sandbox Code Playgroud)

3.)终于跑了

pip install -U docker-compose
Run Code Online (Sandbox Code Playgroud)

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

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


Pet*_*ter 7

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

pip install -U docker-compose
Run Code Online (Sandbox Code Playgroud)

  • 你确实可以,但是当运行`docker-compose up`时它会引发`ImportError:没有名为'fcntl'的模块 (4认同)
  • 我能够使用windows和Babun成功使用docker-compose.只需按照[本指南](http://py-generic-project.readthedocs.org/en/latest/installing.html#babun)安装*pip*和*babun,*然后调用`pip install -U docker -compose` (3认同)

小智 5

看来他们还没有在Windows版本的Boot2Docker中添加原生支持.

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

  • 这适用于bash/Cygwin:`alias docker-compose ="docker run -v \"$(pwd)\":/ app dduportal/docker-compose:latest"` (2认同)

D. *_*son 5

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

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

说明:

  1. boot2docker ssh 从任何终端.
  2. 粘贴脚本并按Enter键.
  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
Run Code Online (Sandbox Code Playgroud)


jon*_*ckt 5

在 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"
Run Code Online (Sandbox Code Playgroud)

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

choco install docker
choco install docker-compose
Run Code Online (Sandbox Code Playgroud)

作为旁注:您不再需要 Boot2Docker 在 Windows 上运行 Docker - Docker 原生支持 Windows已有一段时间了。所以没有必要了。