如果我在docker网站上显示的boot2docker中键入以下命令:
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
当我input以下命令来检查安装是否成功时,我得到:
/usr/local/bin/docker-compose: line 1: syntax error: unexpected newline
那么,如何在boot2docker上安装docker-compose?
2017年更新:现在已经正式管理(支持Hyper-V的Windows 10)和“Docker for Windows” 。
请参阅“ 安装Docker for Windows ”。
它有一个Docker的巧克力安装包 ,所以:
choco install docker-for-windows # or choco upgrade docker-for-windows
再次,这需要一个64位Windows 10专业版,企业和教育(十一月1511更新,生成10586或更高版本)和Microsoft Hyper-V。
对于其他Windows,您仍然需要VirtualBox + Boot2Docker。
更新: docker撰写1.5 (2015年11月)应该使其正式可用于Windows(自RC2以来)。
像PR 2230和PR 2143这样的求助请求得到了帮助。
Commit 13d5efc详细介绍了Windows二进制的官方Build过程。
原始答复(2015年第1季度至第3季度)。
警告:根据Ed Morley( edmorley
)的说法,下面的原始答案(“ docker-compose
in a container”)似乎有一个错误。
“docker-compose in a container”方法似乎存在缓存问题(参见问题6:“docker-compose.yml和Dockerfile的更改未被检测到” )。
埃德建议 :
就目前而言,在
boot2docker
运行Pythonboot2docker
docker-compose
软件包似乎是Windows用户最可靠的解决方案(花费了好几个小时的时间试图与替代方案进行斗争) 。从PyPI安装docker-compose,从
boot2docker
里面boot2docker
:
docker@boot2docker:~$ tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py | \ sudo python - && sudo pip install -U docker-compose
为了节省每次
boot2docker
虚拟机重新启动时运行上面的boot2docker
(因为更改不会持久),可以使用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
运行,而bootlocal.sh
以root
bootlocal.sh
运行。一旦固定了#915 ,bootlocal.sh
的chmod
应该是不必要的。
如果需要追加,请将-a
添加到tee
命令,而不是覆盖bootlocal.sh
。)如果您希望使用docker-compose的预发布版本,请将
pip install -U docker-compose
替换为pip install -U docker-compose
pip install -U docker-compose>=1.3.0rc1
或同等版本。
原始答案:
我还通过以下方式在图像中运行docker docker-compose
(在Windows boot2docker上):
/c/Users/<username>/myproject/compose
克隆https://github.com/docker/compose (为了拥有持久性,因为/c/Users/<username>
是自动挂载的,所以当我使用VirtualBox其扩展包 ) 建造码头 – 构图图像:
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 .
在启动boot2docker ssh会话之前添加一个“ dc
”别名(在我复制到我的/home/docker/.ashrc
的profile
文件中)。
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。
在Windows下使用Babun(Cygwin shell的一个着名的端口,包括各种增强功能,包管理器)运行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。
您可以使用pip在Windows上安装docker-compose:
pip install -U docker-compose
看来他们还没有在Windows版本的Boot2Docker中添加本地支持。
因此,目前,您可以像以前一样使用docker-compose: 将其作为码头容器运行 。
boot2docker
版本> = 1.7.0
有64位用户空间 。 这意味着从他们的github仓库中预先建立的二进制文件是开箱即用的。
我已经使用VonC上面的答案中的信息来编写一个脚本,下载最新版本(或特定版本,请参阅代码中的注释部分)并保留它。 它只会下载一次文件,但是它会在每次启动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
事情已经取得了进展,最近我用下面的方法获得了最大的成功,它允许你使用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。 我发现在虚拟机中镜像路径是最容易的,因为它们在主机上,所以我的docker-compose.yml文件不是那么混乱。
在github上,我得到了成功
在点子之后…运行这个命令来安装docker-compose:
`pip install git+git://github.com/docker/compose.git`
不相信? 看这个证明
https://github.com/docker/compose/releases/tag/1.5.0rc3 “撰写现在可用于Windows”。
这是我在boot2docker
内部安装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发行版就足够了,或者你可以直接使用MinGW或者Cygwin的提示符。 如果没有,你可以随时SSH到你的Docker机器并安装在那里。
在Windows上安装Docker Compose(和Docker)最简单的方法就是使用docker-compose包中的巧克力 (一个用于Windows的包管理器),该包应该在包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一段时间了。 所以没有必要了。