Подтвердить что ты не робот

Как установить 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?

4b9b3361

Ответ 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

Ответ 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 не так запутан.

Ответ 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 в течение некоторого времени, Так что больше не нужно этого.