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 Windows和Docker 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 2230和PR 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-compose为pip install -U docker-compose>=1.3.0rc1或等效.
原始答案:
我还在图像中运行docker-compose(在Windows boot2docker上):
/c/Users/<username>/myproject/compose(为了具有持久性,因为/c/Users/<username>被自动地安装,当我使用的VirtualBox以其扩展包)构建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 .
Run Code Online (Sandbox Code Playgroud)添加' dc'别名(在我启动boot2docker ssh会话之前复制到我的profile文件中)./home/docker/.ashrc
dc='docker run --rm -i -t -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'
Run Code Online (Sandbox Code Playgroud)从那里,' dc up'或' dc ps'正常工作.在Windows上.使用boot2docker 1.6.
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.
您可以使用pip在Windows上安装docker-compose:
pip install -U docker-compose
Run Code Online (Sandbox Code Playgroud)
小智 5
看来他们还没有在Windows版本的Boot2Docker中添加原生支持.
所以目前,您可以使用docker-compose,就像之前使用fig一样:将其作为docker容器运行.
boot2dockerversions> = 1.7.0 有64位用户空间.这意味着来自其github存储库的预构建二进制文件开箱即用.
我已经使用VonC上面的答案中的信息编写了一个脚本,可以下载最新版本(或特定版本,请参阅代码中的注释部分)并保留它.它只会下载一次文件,但会在每次启动时将其放在路径上boot2docker.
boot2docker ssh 从任何终端.exit 然后跑 boot2docker restart && boot2docker sshdocker-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)
在 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已有一段时间了。所以没有必要了。
| 归档时间: |
|
| 查看次数: |
50007 次 |
| 最近记录: |