如何在 Windows 上安装 docker-compose

新手上路,请多包涵

如果我在 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 呢?

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

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 ( edmorley ) 的说法,下面的原始答案(“ docker-compose 在容器中”)似乎有一个错误。

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

埃德建议

因此,就目前而言,在 --- 中运行 Python docker-compose 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
>
> ```
>
> (The `su docker -c` gymnastics are required since `tce-load` cannot be run as `root` , and `bootlocal.sh` is run as `root` . 修复 [#915](https://github.com/boot2docker/boot2docker/issues/915) 后,应该不需要 `chmod` 的 `bootlocal.sh` 。
>
> 如果您需要追加,请添加 `-a` 到 `tee` 命令,而不是覆盖 `bootlocal.sh` 。)
>
> 如果您希望使用 docker-compose 的预发布版本,请将 `pip install -U docker-compose` 替换为 `pip install -U docker-compose>=1.3.0rc1` 或等效版本。

* * *

原答案:

我还通过以下方式在图像中运行 [`docker-compose`](https://docs.docker.com/compose/) (在 Windows boot2docker 上):

- 在 `/c/Users/<username>/myproject/compose` 中克隆 [https://github.com/docker/compose](https://github.com/docker/compose) (为了具有持久性,因为 `/c/Users/<username>` 是 [自动安装的,当我使用带有扩展包的 VirtualBox 时](https://stackoverflow.com/a/29554135/6309))

- 构建 docker-compose 图像:


 cd /c/Users/<username>/myproject/compose
# that will put the repo in a detached HEAD, but it does not matter here
git checkout 1.2.0
docker build -t docker-compose .

- 添加一个' `dc` '别名(在一个 [`profile` 文件](https://github.com/VonC/b2d/blob/b0b7dcdee2f59fd3762fa10eac0522f1591cf372/profile#L53) 中,我在 [启动boot2docker ssh会话](https://github.com/VonC/b2d/blob/b0b7dcdee2f59fd3762fa10eac0522f1591cf372/b2d.bat#L6) 之前 [复制到我的 `/home/docker/.ashrc`](https://github.com/VonC/b2d/blob/b0b7dcdee2f59fd3762fa10eac0522f1591cf372/b2d.bat#L5) 。)


 dc='docker run --rm -i -t -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'

”`

从那里,’ dc up ‘或’ dc ps ‘才有效。在 Windows 上。使用 boot2docker 1.6。

原文由 VonC 发布,翻译遵循 CC BY-SA 4.0 许可协议

还有另一种使用 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。

原文由 Ross 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题