Как установить docker-compose в Windows
Если я введу следующие команды в boot2docker, как показано на сайте 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
Итак, как я могу установить docker-compose на boot2docker?
11 ответов
Обновление 7 ноября 2018 года:
На настольных системах, таких как Docker для Mac и Windows, Docker Compose включен как часть этих настольных установок.
Согласно документации, Docker для Windows и Docker Toolbox уже включают Compose вместе с другими приложениями Docker, поэтому большинству пользователей Windows не нужно устанавливать Compose отдельно.
Обновление 2017: теперь это официально управляется (для Windows 10 с поддержкой Hyper-V) с помощью "Docker для Windows".
См. " Установка Docker для Windows ".
Он имеет шоколадный установочный пакет для Docker, так что:
choco install docker-for-windows
# or
choco upgrade docker-for-windows
Опять же, для этого требуется 64-битная Windows 10 Pro, Enterprise и Education (обновление 1511 ноября, сборка 10586 или более поздняя версия) и Microsoft Hyper-V.
Для других Windows вам все еще нужен VirtualBox + Boot2Docker.
Обновление: docker compose 1.5 (ноябрь 2015) должен сделать его официально доступным для Windows (начиная с RC2).
Помогли тянуть запросы как PR 2230 и PR 2143.
Коммит 13d5efc подробно описывает официальный процесс сборки для двоичного файла Windows.
Оригинальный ответ (1 кв. 3 кв. 2015 г.).
Предупреждение: оригинальный ответ (" docker-compose
в контейнере ") ниже, похоже, есть ошибка, по словам Эд Морли ( edmorley
)
По-видимому, существуют проблемы с кэшированием метода "docker-compose in a container" (см. Проблему № 6: "Изменения в docker-compose.yml и Dockerfile не обнаруживаются")
Таким образом, на данный момент работает Python
docker-compose
пакет внутриboot2docker
кажется наиболее надежным решением для пользователей Windows (потратив много часов, пытаясь бороться с альтернативами).Чтобы установить docker-compose из PyPI, запустите его изнутри
boot2docker
:
docker@boot2docker:~$
tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py | \
sudo python - && sudo pip install -U docker-compose
Чтобы избежать необходимости запускать выше каждый раз
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
(The
su docker -c
гимнастика требуются сtce-load
не может быть запущен какroot
, а такжеbootlocal.sh
запускается какroot
,chmod
изbootlocal.sh
должно быть ненужным после исправления #915.
добавлять-a
кtee
Команда, если вам нужно добавить, а не перезаписатьbootlocal.sh
.)Если вы хотите использовать предварительную версию docker-compose, замените
pip install -U docker-compose
сpip install -U docker-compose>=1.3.0rc1
или эквивалент.
Оригинальный ответ:
Я тоже бегаю docker-compose
(в Windows boot2docker) в образе:
- клонирование https://github.com/docker/compose в
/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 .
добавив '
dc
псевдоним (вprofile
файл, который я копирую в свой/home/docker/.ashrc
перед запуском сеанса boot2docker ssh.)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
просто работает. На винде. С boot2docker 1.6.
Самый простой способ установить Docker Compose (и Docker) в Windows - это использовать пакет docker-compose типа " шоколадный"(менеджер пакетов для Windows), который следует установить после 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 для запуска Docker в Windows - Docker уже некоторое время поддерживает Windows. Так что больше в этом нет необходимости.
Существует еще одно решение для запуска docker-compose под Windows с использованием Babun (известный порт оболочки Cygwin со всеми видами улучшений, включая менеджер пакетов).
Вот как:
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.
Вы можете установить docker-compose в Windows с помощью pip:
pip install -U 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
Кажется, они еще не добавили встроенную поддержку в версию Boot2Docker для Windows.
Итак, на данный момент вы можете использовать docker-compose так же, как вы делали с fig ранее: запустите его как контейнер docker.
Я получил успех после этой проблемы на GitHub
- установить докер-машину;
- установить python (3.4.3 работал нормально)
- установить пункт;
после pip... выполните эту команду для установки docker-compose:
`pip install git+git://github.com/docker/compose.git`
Не верить? посмотрите это доказательство
Ситуация прогрессировала, и в последнее время я добился наибольшего успеха с помощью следующего метода, который позволяет вам запускать его в Windows с помощью Docker.
Сначала вам нужно установить CLI Docker для Windows:
curl -L https://get.docker.com/builds/Windows/x86_64/docker-latest.exe > /usr/bin/docker
chmod +x /usr/bin/docker
Затем создайте образ docker-compose из репозитория Github:
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 не так запутывает.
https://github.com/docker/compose/releases/tag/1.5.0rc3 "Композиция теперь доступна для Windows".
Это был мой быстрый ответ для установки Compose внутри boot2docker
, Если кто-то захочет принять предложение VonC о запуске Compose для хоста Docker своего хоста из контейнера, я создал контейнер разработчика подмастерье , который следует указаниям Compose и прост в установке и запуске.
Если у вас есть оболочка типа Bourne в Windows, вы можете просто запустить:
curl -L https://git.io/vuEqk -o /usr/local/bin/room
chmod +x /usr/local/bin/room
Вы можете запустить контейнер на любом пути и взять его оттуда, просто выполнив:
room
Вы можете при желании передать аргументы команды, поэтому, если вы окажетесь в рабочем каталоге с файлом конфигурации Compose, этого будет достаточно, чтобы все заработало:
room docker-compose up
Если вам не хватает поддерживающей среды оболочки, достаточно будет установить один из дистрибутивов Git для Windows, который включает в себя приглашение Git Bash, или вы можете напрямую использовать приглашения одного из MinGW или Cygwin. Если нет, вы всегда можете установить SSH на свой Docker Machine и установить там.
Я пробовал в Windows, вы можете следить за статьей https://sudeep.mytechexp.com/2020/09/docker-networking.html