Как установить 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) в образе:

Оттуда 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,

Инструкции:

  1. boot2docker ssh с любого терминала.
  2. вставьте скрипт и нажмите ввод.
  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

Кажется, они еще не добавили встроенную поддержку в версию 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

Другие вопросы по тегам