Докер встановлений, але 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

5
Як не дивно, що для Windows і Mac все завантажено та доступно, тоді як користувачі Linux повинні пройти повний набір тексту та встановлення матеріалів окремо та розбирання речей (що, звичайно, цікаво)
killjoy

Відповіді:


277

Вам також потрібно встановити 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 stackі докер рой. vsupalov.com/difference-docker-compose-and-docker-stack . Можливо, у цій відповіді слід згадати, що, як це з’являється першим у Google, коли шукає докер-композит
Елоімс,

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's source.list (сценарій встановлення з get.docker.com виконує це автоматично для вас). Однак, на мій Raspberry Pi 3 з Raspian Stretch Lite це призвело до дуже старої версії: docker-compose version 1.8.0, build unknown. Ця версія настільки стара, що підтримує лише версію 2 формату файлів докер-композиції.
Роберт

Дивовижно це допомогло мені отримати помилку докер-компів на aws. Спасибі
Laser Hawk

1
У мене виникли проблеми і я використав 'apt purge' та 'pip uninstall' для docker-compose, а потім перевстановити ще раз (не впевнений, що один чи обидва), але важливою частиною рішення було також: pip install --upgrade docker-py
mirek

Ідеально! без будь-яких перевірок на вигин, chmod та версії. Просто автоматична установка останньої версії. Слід сприймати як відповідь.
Вишня

Отримав безліч помилок під час використання 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

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. Це мене дратує, оскільки це буквально єдине, для чого я використовую піп.
Groostav

5

Перш за все, перевірте, чи встановлено докер-композицію,

$ docker-compose -v

Якщо він не встановлений, зверніться до посібника з установки https://docs.docker.com/compose/install/ Якщо встановлено, надайте виконавчий дозвіл на бінарний файл.

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

перевірити, чи це працює.


5

Я на debian, я знайшов щось цілком природне:

apt-get install docker-compose

і вона зробила роботу (не перевірена на центосах)


1

Звертаючись до наведених вище відповідей (у мене недостатньо репутації, щоб окремо посилатися на окремі рішення, отже, я це роблю в цьому місці колективно), я хочу доповнити їх кількома важливими пропозиціями:

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

  2. docker-compose з сховища знаходиться у версії 1.8.0 (принаймні у мене). Ця версія докер-композиції не підтримує файли конфігурації у версії 3. У ній є лише підтримка version = <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. Коли ви намагаєтесь вручну видалити старі бінарні файли докерів, ви можете мати інформацію про файл, що відсутній, у шляху за замовчуванням /usr/local/bin/docker-compose. У моєму випадку docker-compose знаходився в шляху за замовчуванням / usr / bin / docker-compose. У цьому випадку, я пропоную вам використовувати інструмент пошуку у вашій системі , щоб знайти бінарний файл Докер-Compose - приклад синтаксис: sudo find / -name 'docker-compose'. Це мені допомогло. Завдяки цьому я видалив стару версію docker-compose і додав стабільний до системи - я використовую інструмент curl для завантаження бінарного файлу docker-compose, переводячи його в правильний шлях і надаючи йому правильні дозволи - весь цей процес має було описано в публікаціях вище.

З повагою, Адам


0

Установка докера не означає, що ви встановили docker-compose. Одним з передумов є те, що ви вже встановили докерний двигун, який ви вже зробили. Після цього ви зможете встановити docker-compose, перейшовши за цим посиланням для Centos 7.


Ні, я запустив цю команду "yum install docker-engine", але я отримую помилку Пакет docker-engine-1.11.0-1.el7.centos.x86_64 вже встановлена ​​та остання версія, і досі немає докер-складу, це дає мені помилку / usr / local / bin / docker-compose: рядок 1: {помилка: Не знайдено}: команда не знайдена
mahen3d

Як я вже говорив: двигун Докера - це щось інше, ніж Докер. Таким чином, ви можете встановити докерний двигун і просто працювати з docker, але коли ви хочете використовувати docker compose, вам потрібно встановити його окремо (де установка двигуна є обов'язковою умовою (ви вже це зробили)). Тому спробуйте зараз посилання, яке я дав у відповіді (ви можете використовувати curl або pip, щоб встановити docker-compose)
lvthillo

0

docker-compose в даний час є інструментом, який використовує 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 або будь-який інший каталог на своєму шляху.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.