[英]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的 Docker和Docker Toolbox已包含Compose以及其他Docker應用程序,因此大多數Windows用戶不需要單獨安裝Compose。
2017年更新:現在已使用“ Docker for Windows”正式管理了此功能(對於支持Hyper-V的Windows 10)。
請參閱“ 為Windows安裝Docker ”。
它確實具有適用於Docker的Chocolatey安裝軟件包 ,因此:
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 2230和PR 2143之類的請求請求有所幫助。
提交13d5efc詳細介紹了Windows二進制文件的正式生成過程。
原始答案(2015年第一季度至第三季度)。
警告:根據Ed Morley( edmorley
)的說法,下面的原始答案(“ docker-compose
in a container”)似乎有一個錯誤。
“ docker-compose in a container”方法似乎存在緩存問題(請參閱問題#6:“未檢測到對docker-compose.yml和Dockerfile的更改” )
埃德建議 :
就目前而言,在
boot2docker
內運行Pythonboot2docker
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.sh
是root
bootlocal.sh
運行,所以需要su docker -c
體操。一旦固定了#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 (為了具有持久性,因為當我將VirtualBox與 /c/Users/<username>
自動安裝時,其擴展包 ) 構建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
'別名(在啟動boot2docker ssh會話之前,我復制到/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。
還有另一種使用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
將其放在路徑上。
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。 我發現最容易在主機上鏡像VM中的路徑,因此我的docker-compose.yml文件並沒有那么令人困惑。
在github上解決此問題后,我獲得了成功
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發行版就足夠了,或者您可以直接使用MinGW或Cygwin之一中的提示符。 如果沒有,您可以始終通過SSH進入您的Docker Machine並在此處安裝。
我在windows下試過,可以參考文章https://sudeep.mytechexp.com/2020/09/docker-networking.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.