Как установить docker-compose в Windows
Если я наберу следующие команды в 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
Итак, как я могу установить docker-compose на boot2docker?
Ответы
Ответ 1
Обновление 2017: теперь это официально поддерживается (для Windows 10 с поддержкой Hyper-V) с "Docker for Windows" .
См. " Установить Docker для Windows".
У него есть chocolatey установка пакет для 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 (Nov 2015) должно сделать его официально доступным для Windows (с RC2).
Вытяните запросы, например PR 2230 и PR 2143 помог.
Commit 13d5efc детализирует официальный процесс сборки для двоичного файла Windows.
Оригинальный ответ (Q1-Q3 2015).
Предупреждение: исходный ответ ( "docker-compose
в контейнере" ), кажется, имеет ошибку, согласно Эд Морли (edmorley
).
Как представляется, проблемы кэширования возникают с помощью метода "docker-compose in a container" (см. issue # 6: "Изменения в docker-compose.yml и Dockerfile не обнаружены" )
Эд рекомендует:
В настоящее время запуск пакета Python docker-compose
внутри boot2docker
представляется наиболее надежным решением для пользователей Windows (потратив много часов на битву с альтернативами).
Чтобы установить docker-compose из PyPI, запустите это изнутри boot2docker
:
[email protected]:~$
tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py | \
sudo python - && sudo pip install -U docker-compose
Чтобы сохранить выполнение для запуска выше при каждом перезапуске boot2docker
VM (так как изменения не сохраняются), вы можете использовать bootlocal.sh
следующим образом:
[email protected]:~$
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
выполняется как root
. chmod
of 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) в изображении:
Оттуда работает "dc up
" или "dc ps
". В Windows. С boot2docker 1.6.
Ответ 2
Есть еще одно решение для запуска 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 VM, поэтому вам не нужно ssh все время.
Ответ 3
Вы можете установить docker-compose на Windows с помощью pip:
pip install -U docker-compose
Ответ 4
Кажется, они еще не добавили встроенную поддержку в версию Boot2Docker для Windows.
Итак, на данный момент вы можете использовать docker-compose, как вы это делали ранее: запустить его в качестве контейнера докеров.
Ответ 5
boot2docker
versions >= 1.7.0
имеют 64-битное пользовательское пространство. Это означает, что готовые двоичные файлы из их репозиторий github работают из коробки.
Я использовал информацию в ответе VonC выше, чтобы написать script, который загружает последнюю версию (или конкретную версию, см. комментарий в коде ) и сохраняется. Он будет загружать файл только один раз, но он поместит его в путь при каждом запуске boot2docker
.
Инструкция:
-
boot2docker ssh
с любого терминала.
- вставьте script и нажмите клавишу ввода.
-
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
Ответ 6
Все прошло, и в последнее время я получил наибольший успех со следующим методом, который позволяет запускать его изначально на Windows с помощью Docker.
Сначала вам нужно установить Docker CLI для Windows:
curl -L https://get.docker.com/builds/Windows/x86_64/docker-latest.exe > /usr/bin/docker
chmod +x /usr/bin/docker
Затем создайте образ компоновки, созданный докере, из репозитория 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'
Я использую это какое-то время и не сталкивался с какими-либо проблемами - функциональность - это именно то, что вы ожидали бы, если бы использовали двоичный файл изначально, вам просто нужно убедиться, что ваши общие папки сопоставлены правильно в VMD/Docker-Machine VM. Мне легче всего отображать пути в виртуальной машине, так как они находятся на хосте, поэтому мой файл docker-compose.yml не так запутан.
Ответ 7
Я получил успех после эта проблема в github
- установить ;
- установить python (3.4.3 работал нормально)
- установить pip;
-
после pip... запустите эту команду, чтобы установить docker-compose:
`pip install git+git://github.com/docker/compose.git`
Не верю? посмотреть это доказательство
Ответ 8
https://github.com/docker/compose/releases/tag/1.5.0rc3 "Теперь для Windows доступна композиция".
Ответ 9
Это был мой ответ, чтобы установить Compose внутри boot2docker
. Если кто-то захочет принять участие в VonC, чтобы запустить Compose против своего хост-сервера Docker из контейнера, я создал подмастерье контейнер разработчика, который следует Составьте рекомендации и прост в установке и запуске.
Если у вас есть оболочечная среда 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 в своей докерной машине и установить там.
Ответ 10
Самый простой способ установить Docker Compose (и Docker) в Windows - использовать chocolatey (диспетчер пакетов для Windows ) package 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"
Теперь, когда шоколадный установлен, единственное, что осталось - это запустить административную Powershell и сделать:
choco install docker
choco install docker-compose
В качестве побочного элемента: вам больше не понадобится Boot2Docker для запуска Docker в Windows - Докеры изначально поддерживают Windows в течение некоторого времени, Так что больше не нужно этого.