如果我在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?
答案 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 2230和PR 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")
就目前而言,在
docker-compose
中运行Pythonboot2docker
软件包似乎是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上):
/c/Users/<username>/myproject/compose
中克隆https://github.com/docker/compose(为了拥有持久性,因为/c/Users/<username>
是automatically mounted, when I use VirtualBox with its extension pack)构建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 .
添加&#39; dc
&#39;别名(profile
file copy to my /home/docker/.ashrc
launching the boot2docker ssh session之前的{{3}}。)
dc='docker run --rm -i -t -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'
从那里开始,{&#39; dc up
&#39;或者&#39; dc ps
&#39;只是工作。在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-composelambda
答案 3 :(得分:5)
似乎他们尚未在Windows版本的Boot2Docker中添加本机支持。
目前,您可以使用docker-compose作为您之前使用fig的方式:run it as a docker container。
答案 4 :(得分:5)
boot2docker
个版本&gt; = 1.7.0
have 64 bits userspace。这意味着来自their github repository的预建二进制文件开箱即用。
我已使用VonC's answer above中的信息编写了一个脚本,用于下载最新版本(或特定版本,请参阅代码中的注释部分)并保留它。它只会下载一次文件,但会在boot2docker
的每次启动时将其放在路径上。
boot2docker ssh
。exit
然后运行boot2docker restart && boot2docker ssh
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
答案 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)
运行此命令以安装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发行版就足够了,或者您可以直接使用MinGW或Cygwin之一的提示。如果没有,您可以随时通过SSH连接到Docker Machine并安装到那里。