Docker jest zainstalowany, ale nie jest Docker Compose? czemu?

127

Zainstalowałem Dockera na Centos 7., uruchamiając następujące polecenia,

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

UWAGA: helloworld działa poprawnie i nie ma problemów.

jednak kiedy próbuję uruchomić docker-compose (docker-compose.yml istnieje i jest poprawny), wyświetla mi się błąd tylko na Centos (wersja Windows działa dobrze dla pliku docker-compose)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
mahen3d
źródło
5
Co zabawne, dla Windows i Mac wszystko jest ładowane i dostępne, podczas gdy użytkownicy Linuksa muszą przejść przez męczarnię pisania i instalowania rzeczy osobno i wymyślania rzeczy (co jest oczywiście zabawne)
killjoy

Odpowiedzi:

278

Musisz także zainstalować Docker Compose. Zobacz instrukcję . Oto polecenia, które musisz wykonać

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
Daniel Stefaniuk
źródło
4
Podczas uruchamiania drugiej linii otrzymuję odpowiedź:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb
4
@kuanb jeśli jest napisane, że pozwolenie nie jest dozwolone, upewnij się, że masz pełne prawa do sudo
killstreet
Na razie wersja 1.7.0 jest stara. Według docs.docker.com/compose/install nowa wersja to 1.11.2. Oznacza to, że zamiast curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose należy użyć curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy
1
Upewnij się, że link wskazujący na wydanie GitHub nie jest nieaktualny! Sprawdź najnowsze wersje na GitHub . Możesz również pobrać najnowszy plik z przeglądarki, a następnie po prostu przenieść i przyznać uprawnienia do pliku wykonywalnego.
totymedli
1
Wciąż uczę się o dockerze, ale jak rozumiem, docker-compose nie powinien być używany do nowych instalacji, ponieważ wszystkie jego funkcje zostały zintegrowane z głównym docker-cli with docker stacki docker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Może ta odpowiedź powinna o tym wspomnieć, ponieważ pojawia się jako pierwsza w Google podczas wyszukiwania
docker
40

Instaluję na Raspberry Pi 3, z Raspbian 8. Metoda curl zawiodła dla mnie (pojawił się line 1: Not: command not foundbłąd na prośbę docker-compose --version), a rozwiązanie @ sunapi386 wydawało się trochę przestarzałe, więc wypróbowałem to, które zadziałało:

Najpierw wyczyść rzeczy z poprzednich wysiłków:

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

Następnie postępuj zgodnie z tymi wskazówkami, ponownie dokuj-redaguj na Rpi :

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

Dla mnie (1 listopada 2017) skutkuje to następującą odpowiedzią na docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219
Scott Veirs
źródło
6
Twoje rozwiązanie działa idealnie! Jeśli nie potrzebujesz najnowszej wersji docker-compose, możesz również użyć apt-get install docker-compose. Oczywiście wymaga to dodania repozytorium docker do pliku sources.list apt (skrypt instalacyjny z get.docker.com wykona to automatycznie). Jednak w moim Raspberry Pi 3 z Raspian Stretch Lite to spowodowało bardzo starej wersji: docker-compose version 1.8.0, build unknown. Ta wersja jest tak stara, że ​​obsługuje tylko wersję 2 formatu pliku docker-compose.
robert
Niesamowite, że pomogło mi to w wyświetlaniu błędu docker-comps w aws. Dzięki
Laser Hawk
1
Miałem kilka problemów i użyłem 'apt purge' i 'pip uninstall' dla docker-compose, a następnie ponownie zainstaluj ponownie (nie jestem pewien, czy jedno czy oba), ale ważną częścią rozwiązania było również: pip install --upgrade docker-py
mirek
Idealny! bez sprawdzania curl, chmod i wersji. Po prostu automatycznie zainstaluj ostatnią wersję. Powinna zostać przyjęta jako odpowiedź.
Cherry
Występuje mnóstwo błędów podczas używania pip do instalowania docker-compose. Jeśli Ty też to zrobisz, wypróbuj tę odpowiedź stackoverflow.com/a/43012312/430773
Vik,
10

Instaluję na Raspberry Pi 3, na Raspbian OS. curlMetody nie rozwiązało do prawidłowej odpowiedzi. Powiedział również {error: Not Found}, że spojrzałem na adres URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7li nie był on prawidłowy. Chyba nie było tam żadnej kompilacji.

Ten przewodnik https://github.com/hypriot/arm-compose zadziałał dla mnie.

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
źródło
9

Jeśli zainstalowałeś dockera , dodając jego oficjalne repozytorium do listy repozytoriów, na przykład:

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

Po prostu zrób:

$ sudo apt-get install docker-compose

W przypadku dystrybucji / Fedory opartej na RHEL:

$ sudo dnf install docker-compose
Gayan Weerakutti
źródło
1
Apt get - nawet po dodaniu repozytoriów, które określają dla docker CE, wydaje się zawierać tylko docker-compose1.8, co jest zgodne z maksymalnym docker-compose.ymlplikiem w wersji 2. Innymi słowy, nie publikują już docker-composew apt-getdomyślnych repozytoriach lub własnych apt- pobierz repozytorium. Wydaje się, że aby uzyskać nowsze wersje, musisz użyć pip. To mnie denerwuje, ponieważ jest to dosłownie jedyna rzecz, do której używam pip.
Groostav
6

Jestem na Debianie, znalazłem coś całkiem naturalnego:

apt-get install docker-compose

i spełniło swoje zadanie (nie testowane na centach)

herve-guerin
źródło
5

przede wszystkim sprawdź, czy jest zainstalowany docker-compose,

$ docker-compose -v

Jeśli nie jest zainstalowany, zapoznaj się z instrukcją instalacji https://docs.docker.com/compose/install/ Jeśli jest zainstalowany, nadaj plikowi wykonywalne uprawnienia do pliku binarnego.

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

sprawdź, czy to działa.

SYN
źródło
1

Odwołując się do odpowiedzi podanych powyżej (nie mam wystarczającej reputacji, aby osobno odnosić się do poszczególnych rozwiązań, stąd robię to zbiorczo w tym miejscu), chcę je uzupełnić kilkoma ważnymi sugestiami:

  1. docker-compose możesz zainstalować z repozytorium (jeśli masz ten pakiet w repozytorium, jeśli nie możesz dodać do systemu repozytorium z tym pakietem) lub pobrać plik binarny za pomocą curl - totourial na oficjalnej stronie projektu - src: https://docs.docker.com/compose/install /

  2. docker-compose z repozytorium jest w wersji 1.8.0 (przynajmniej u mnie). Ta wersja docker-compose nie obsługuje plików konfiguracyjnych w wersji 3. Obsługuje tylko wersję = <2. Na oficjalnej stronie projektu znajduje się rekomendacja użycia konfiguracji kontenera w wersji 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. Z własnego doświadczenia z pracą w dockerze polecam używanie konfiguracji kontenerów w wersji 3 - jest więcej opcji konfiguracyjnych do wykorzystania niż w wersjach <3. Jeśli chcesz korzystać z konfiguracji konfiguracji w wersji 3, musisz zaktualizować / zainstalować docker-compose do wersji co najmniej 1.17 - najlepiej najnowszej stabilnej. Oficjalna strona projektu jest pełna, jak to zrobić - src:https://docs.docker.com/compose/install/

  3. kiedy spróbujesz ręcznie usunąć stare pliki binarne Docker-Compose, możesz uzyskać informacje o brakującym pliku w domyślnej ścieżce /usr/local/bin/docker-compose. W moim przypadku docker-compose znajdował się w domyślnej ścieżce / usr / bin / docker-compose. W tym przypadku proponuję użyć narzędzia w Waszym systemie, aby znaleźć plik binarny Döcker-Compose - przykład składni: sudo find / -name 'docker-compose'. Pomogło mi. Dzięki temu usunąłem starą wersję docker-compose i dodałem stabilną do systemu - używam narzędzia curl do pobierania pliku binarnego docker-compose, umieszczając go we właściwej ścieżce i nadając mu odpowiednie uprawnienia - cały ten proces ma zostały opisane w postach powyżej.

Pozdrawiam, Adam

Adam Wądołkowski
źródło
0

Zainstalowanie dockera nie oznacza, że ​​zainstalowałeś docker-compose. Warunkiem wstępnym jest, że już zainstalowałeś silnik Dockera, który już zrobiłeś. Następnie możesz zainstalować docker-compose, korzystając z tego linku dla Centos 7.

lvthillo
źródło
Nie, uruchomiłem polecenie "yum install docker-engine", ale pojawia się błąd. Pakiet docker-engine-1.11.0-1.el7.centos.x86_64 jest już zainstalowany i jest w najnowszej wersji i nadal nie ma docker-compose, daje mi błąd / usr / local / bin / docker-compose: wiersz 1: {błąd: nie znaleziono}: nie znaleziono polecenia
mahen3d
Jak powiedziałem: silnik Dockera to coś innego niż Docker Compose. Możesz więc zainstalować silnik dockera i po prostu pracować z dockerem, ale jeśli chcesz używać docker compose, musisz zainstalować go osobno (gdzie instalacja silnika jest warunkiem wstępnym (już to zrobiłeś)). Więc spróbuj teraz link, który podałem w odpowiedzi (możesz użyć curl lub pip, aby zainstalować docker-compose)
lvthillo
0

docker-compose jest obecnie narzędziem używającym docker (-engine), ale nie jest uwzględnione w dystrybucji docker.

Oto link do instrukcji instalacji: 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 zmieni się w przyszłości)

Patrick Cornelissen
źródło
0

Powyższe rozwiązania u mnie nie działają. Ale okazało się, że to zadziałało:

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
Shaun Barney
źródło
0

W systemie Linux można pobrać plik binarny Docker Compose ze strony wersji repozytorium Compose w witrynie GitHub. Postępuj zgodnie z instrukcjami z linku, które obejmują uruchomienie polecenia curl w terminalu, aby pobrać pliki binarne. Te instrukcje krok po kroku są również zawarte poniżej.

1: Uruchom to polecenie, aby pobrać bieżącą stabilną wersję 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

Aby zainstalować inną wersję Compose, zastąp 1.26.2 wersją Compose, której chcesz użyć.

2: Zastosuj uprawnienia wykonywalne do pliku binarnego:

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

Uwaga: Jeśli polecenie docker-compose nie powiedzie się po instalacji, sprawdź ścieżkę. Możesz także utworzyć dowiązanie symboliczne do / usr / bin lub dowolnego innego katalogu w swojej ścieżce.

Kashif
źródło