Docker установлен, а Docker Compose - нет? Зачем?

127

Я установил докер на centos 7., выполнив следующие команды:

curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world

ПРИМЕЧАНИЕ: helloworld работает правильно и без проблем.

однако, когда я пытаюсь запустить docker-compose (docker-compose.yml существует и действителен), он выдает ошибку только на Centos (версия Windows отлично работает для файла docker-compose)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
mahen3d
источник
5
Как ни странно, для Windows и Mac все загружено и доступно, в то время как пользователям Linux приходится выполнять
утомительную

Ответы:

278

Вам также необходимо установить Docker Compose. См. Руководство . Вот команды, которые вам нужно выполнить

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)"  -o /usr/local/bin/docker-compose
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Даниэль Стефанюк
источник
4
При запуске второй строки получаю ответ:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb
4
@kuanb, если он говорит, что разрешение запрещено, убедитесь, что у вас есть полные права sudo
killstreet
На данный момент версия 1.7.0 устарела. Согласно docs.docker.com/compose/install новая версия - 1.11.2. Это означает, что вместо curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose следует использовать curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Юрий Залецкий
1
Убедитесь, что ссылка на выпуск GitHub не устарела! Ознакомьтесь с последними выпусками на GitHub . Вы также можете загрузить последний файл из браузера, а затем просто переместите его и дайте исполняемому файлу разрешение для него.
totymedli
1
Я все еще изучаю docker, но, насколько я понимаю, docker-compose не следует использовать для новых установок, поскольку все его функции были интегрированы в основной docker-cli с помощью docker stackdocker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Возможно, в этом ответе следует упомянуть, что, поскольку он впервые появляется в Google при поиске docker-compose
Eloims
40

Я устанавливаю на Raspberry Pi 3 с Raspbian 8. Метод curl у меня не удался ( line 1: Not: command not foundпри запросе возникла ошибка docker-compose --version), а решение @ sunapi386 показалось немного устаревшим, поэтому я попробовал это, и оно сработало:

Сначала очистите вещи от предыдущих усилий:

sudo rm /usr/local/bin/docker-compose
sudo pip uninstall docker-compose

Затем следуйте этому руководству по повторной компоновке докеров на Rpi :

sudo apt-get -y install python-pip
sudo pip install docker-compose

Для меня (1 ноября 2017 г.) это приводит к следующему ответу на docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219
Скотт Вейрс
источник
6
Ваше решение отлично работает! Если вам не нужна последняя версия docker-compose, вы также можете использовать apt-get install docker-compose. Конечно, для этого необходимо, чтобы вы добавили репозиторий докеров в свой apt sources.list (сценарий установки с get.docker.com выполняет это автоматически за вас). Однако, на мой Raspberry Pi 3 с Raspian Stretch Lite это привело к очень старой версии: docker-compose version 1.8.0, build unknown. Эта версия настолько старая, что поддерживает только версию 2 формата файла docker-compose.
Роберт
Замечательно, это помогло мне получить ошибку docker-comps на aws. Спасибо
Laser Hawk
1
У меня были некоторые проблемы, и я использовал apt purge и pip uninstall для docker-compose, а затем снова переустановил (не уверен, одно или оба), но важной частью решения также было: pip install --upgrade docker-py
mirek
Отлично! без каких-либо проверок curl, chmod и версии. Просто автоматическая установка последней версии. Следует принять в качестве ответа.
Cherry
Получил массу ошибок при использовании pip для установки docker-compose. Если вы тоже, попробуйте этот ответ stackoverflow.com/a/43012312/430773
Вик,
10

Я устанавливаю на Raspberry Pi 3 на Raspbian OS. curlМетод не дает правильный ответ. Он также сказал {error: Not Found}, что я посмотрел на URL-адрес, https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7lи он не действителен. Думаю, сборки там не было.

Это руководство https://github.com/hypriot/arm-compose сработало для меня.

sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose
sunapi386
источник
9

Если вы установили докеры , добавив их официальный репозиторий в свой список репозиториев, например:

curl -L https://nightly.odoo.com/odoo.key | apt-key add -
sudo echo "deb http://nightly.odoo.com/10.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

Просто сделать:

$ sudo apt-get install docker-compose

В случае использования дистрибутива на основе RHEL / Fedora:

$ sudo dnf install docker-compose
Гаян Виракутти
источник
1
Apt get - даже после добавления репозиториев, которые они указывают для docker CE, кажется, содержит только docker-compose1.8, который совместим с максимальным docker-compose.ymlфайлом версии 2. Другими словами, они больше не публикуются docker-composeв apt-getрепозитории по умолчанию или в свои собственные apt- получить репозиторий. Чтобы получить более новые версии, вам, кажется, нужно использовать pip. Это меня раздражает, так как это буквально единственное, для чего я использую pip.
Groostav
6

Я на дебиане, нашел что-то вполне естественное:

apt-get install docker-compose

и он выполнил свою работу (не тестировался на centos)

Эрве-Герена
источник
5

в первую очередь проверьте, установлен ли docker-compose,

$ docker-compose -v

Если он не установлен, обратитесь к руководству по установке https://docs.docker.com/compose/install/. Если он установлен, предоставьте исполняемые права для двоичного файла.

$ chmod +x /usr/local/bin/docker-compose

проверьте, работает ли это.

СЫН
источник
1

Ссылаясь на приведенные выше ответы (у меня недостаточно репутации, чтобы отдельно ссылаться на отдельные решения, поэтому я делаю это вместе в этом месте), я хочу дополнить их некоторыми важными предложениями:

  1. docker-compose вы можете установить из репозитория (если у вас есть этот пакет в репозитории, если нет, вы можете добавить в систему репозиторий с этим пакетом) или загрузить двоичный файл с помощью curl - totourial на официальном сайте проекта - src: https://docs.docker.com/compose/install /

  2. docker-compose из репозитория находится в версии 1.8.0 (по крайней мере, у меня). Эта версия для создания докеров не поддерживает файлы конфигурации в версии 3. Она поддерживает только версию = <2. На официальном сайте проекта есть рекомендация использовать конфигурацию контейнера в версии 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. Исходя из собственного опыта работы в докере, я рекомендую использовать конфигурации контейнера в версии 3 - вариантов конфигурации больше, чем в версиях <3. Если вы хотите использовать конфигурации конфигурации в версии 3, вам необходимо обновить / установить docker-compose до версии не ниже 1.17 - желательно последней стабильной версии. На официальном сайте проекта подробно рассказано, как это сделать - src:https://docs.docker.com/compose/install/

  3. когда вы пытаетесь вручную удалить старые двоичные файлы docker-compose, вы можете получить информацию об отсутствующем файле в пути по умолчанию /usr/local/bin/docker-compose. В моем случае docker-compose находился в пути по умолчанию / usr / bin / docker-compose. В этом случае, я предлагаю вам использовать инструмент поиска в вашей системе , чтобы найти двоичный файл Докер-Compose - пример синтаксис: sudo find / -name 'docker-compose'. Мне это помогло. Благодаря этому я удалил старую версию docker-compose и добавил стабильную в систему - я использую инструмент curl для загрузки двоичного файла docker-compose, помещая его в правильный путь и давая ему правильные разрешения - весь этот процесс было описано в постах выше.

С уважением, Адам

Адам Вендолковски
источник
0

Установка docker не означает, что вы установили docker-compose. В качестве предварительных требований вы уже установили движок докеров, который вы уже установили. После этого вы можете установить docker-compose по этой ссылке для Centos 7.

lvthillo
источник
Нет, я выполнил эту команду «yum install docker-engine», но я получаю сообщение об ошибке Пакет docker-engine-1.11.0-1.el7.centos.x86_64 уже установлен и последняя версия, но до сих пор нет docker-compose, это дает мне ошибку / usr / local / bin / docker-compose: строка 1: {error: Not Found}: команда не найдена
mahen3d
Как я уже сказал: движок Docker - это нечто иное, чем создание Docker. Таким образом, вы можете установить движок докеров и просто работать с докерами, но если вы хотите использовать составление докеров, вам необходимо установить его отдельно (где установка движка является предварительным требованием (вы уже сделали это)). Итак, попробуйте ссылку, которую я дал в ответе (вы можете использовать curl или pip для установки docker-compose)
lvthillo
0

docker-compose в настоящее время является инструментом, который использует docker (-engine), но не включен в дистрибутив docker.

Вот ссылка на руководство по установке: https://docs.docker.com/compose/install/

TL; DR:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose

(1.8.0 изменится в будущем)

Патрик Корнелиссен
источник
0

Вышеупомянутые решения не помогли мне. Но я обнаружил, что это сработало:

sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot
Шон Барни
источник
0

В Linux вы можете загрузить двоичный файл Docker Compose со страницы выпуска репозитория Compose на GitHub. Следуйте инструкциям по ссылке, которые включают запуск команды curl в вашем терминале для загрузки двоичных файлов. Эти пошаговые инструкции также включены ниже.

1: Выполните эту команду, чтобы загрузить текущую стабильную версию Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Чтобы установить другую версию Compose, замените 1.26.2 версией Compose, которую вы хотите использовать.

2: применить к двоичному файлу права доступа к исполняемым файлам:

sudo chmod +x /usr/local/bin/docker-compose

Примечание. Если после установки выполнить команду docker-compose не удается, проверьте свой путь. Вы также можете создать символическую ссылку на / usr / bin или любой другой каталог на своем пути.

Kashif
источник