簡體   English   中英

如何在 Windows 上安裝 docker-compose

[英]How to install docker-compose on Windows

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

當我輸入以下命令來檢查安裝是否成功時,我得到:

/usr/local/bin/docker-compose: line 1: syntax error: unexpected newline

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

2018年11月7日更新:

在適用於Mac和Windows的Docker等桌面系統上,Docker Compose包含在這些桌面安裝中。

根據文檔適用於Windows的 DockerDocker Toolbox已包含Compose以及其他Docker應用程序,因此大多數Windows用戶不需要單獨安裝Compose。


2017年更新:現在已使用“ Docker for Windows”正式管理了此功能(對於支持Hyper-V的Windows 10)。
請參閱“ 為Windows安裝Docker ”。
它確實具有適用於DockerChocolatey安裝軟件包 ,因此:

choco install docker-for-windows 
# or
choco upgrade docker-for-windows 

同樣,這需要64位Windows 10 Pro,Enterprise和Education(11月1511更新,內部版本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 in a container”)似乎有一個錯誤。

“ docker-compose in a container”方法似乎存在緩存問題(請參閱問題#6:“未檢測到對docker-compose.yml和Dockerfile的更改”

埃德建議

就目前而言,在boot2docker內運行Python boot2docker docker-compose軟件包似乎是Windows用戶最可靠的解決方案(花了很多時間試圖與其他選擇boot2docker

要從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 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

(因為tce-load不能以root bootlocal.sh運行,並且bootlocal.shroot bootlocal.sh運行,所以需要su docker -c體操。一旦固定了#915bootlocal.shchmod就不需要了。
如果需要附加-atee命令,而不是覆蓋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上):

從那里開始,就可以使用“ dc up ”或“ dc ps ”。 在Windows上。 使用boot2docker 1.6。

還有另一種使用Babun在Windows下運行docker-compose的解決方案(著名的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

3.)最后運行

pip install -U docker-compose

解決方案不是我的,可以從這里獲取: http : //habrahabr.ru/post/260329/

我有一個強烈的意見,即docker-compose必須安裝在主機上,而不是boot2docker VM,因此您不必一直使用ssh。

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

pip install -U docker-compose

看來他們尚未向Windows版本的Boot2Docker添加本地支持。

因此,目前,您可以像以前使用fig一樣使用docker-compose: 將其作為docker容器運行

boot2docker版本> = 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

事情已經取得了進展,最近,我用以下方法獲得了最大的成功,該方法允許您使用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文件並沒有那么令人困惑。

在github上解決此問題后,我獲得了成功

  • 安裝docker-machine ;
  • 安裝python (3.4.3工作正常)
  • 安裝點子 ;
  • pip之后...運行此命令以安裝docker-compose:

     `pip install git+git://github.com/docker/compose.git` 

不相信嗎? 看這個證明

https://github.com/docker/compose/releases/tag/1.5.0rc3 “ Compose現在可用於Windows。”

在Windows上安裝Docker Compose(和Docker)的最簡單方法是使用Chocolatey (Windows的軟件包管理器)軟件包docker-compose ,該軟件包應在docker軟件包之后安裝。 手動安裝時,這將使您擺脫許多障礙,並為您提供了一種更新安裝方式的簡便方法。

如果您不熟悉Chocolatey,只需安裝它 -例如,在具有以下內容的管理命令行中:

@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- Docker本地支持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發行版就足夠了,或者您可以直接使用MinGWCygwin之一中的提示符。 如果沒有,您可以始終通過SSH進入您的Docker Machine並在此處安裝。

我在windows下試過,可以參考文章https://sudeep.mytechexp.com/2020/09/docker-networking.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM