Docker ist installiert, Docker Compose jedoch nicht? Warum?


127

Ich habe Docker auf Centos 7 installiert, indem ich die folgenden Befehle ausgeführt habe:

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

HINWEIS: helloworld läuft korrekt und ohne Probleme.

Wenn ich jedoch versuche, Docker-Compose auszuführen (Docker-Compose.yml existiert und ist gültig), wird der Fehler nur unter Centos angezeigt (die Windows-Version funktioniert einwandfrei für die Docker-Compose-Datei).

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found

5
Witzigerweise ist für Windows und Mac alles geladen und verfügbar, während Linux-Benutzer die Plackerei durchlaufen müssen, Dinge separat zu tippen und zu installieren und Dinge herauszufinden (was natürlich Spaß macht)
killjoy

Antworten:


277

Sie müssen auch Docker Compose installieren. Siehe das Handbuch . Hier sind die Befehle, die Sie ausführen müssen

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
Wenn ich die zweite Zeile mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
laufe,

4
@kuanb wenn es heißt, Erlaubnis nicht erlaubt, stellen Sie sicher, dass Sie volle Sudo-Rechte haben
killstreet

Derzeit ist Version 1.7.0 alt. Laut docs.docker.com/compose/install ist die neue Version 1.11.2. Es bedeutet, dass anstelle von 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/ verwendet werden sollte. 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy

1
Stellen Sie sicher, dass der Link zur GitHub-Version nicht veraltet ist! Schauen Sie sich die neuesten Versionen auf GitHub an . Sie können die neueste Datei auch aus dem Browser herunterladen, dann einfach verschieben und ausführbare Berechtigungen dafür erteilen.
Totymedli

1
Ich lerne immer noch etwas über Docker, aber meines Wissens sollte Docker-Compose nicht für Neuinstallationen verwendet werden, da alle Funktionen in die Haupt-Docker-CLI mit docker stackund Docker-Schwarm integriert wurden. vsupalov.com/difference-docker-compose-and-docker-stack . Vielleicht sollte diese Antwort das erwähnen, wie es zuerst auf Google erscheint, wenn nach Docker-Compose
gesucht wird

40

Ich installiere auf einem Raspberry Pi 3 mit Raspbian 8. Die Curl-Methode ist bei mir fehlgeschlagen ( line 1: Not: command not foundauf Anfrage wurde ein Fehler docker-compose --versionangezeigt), und die Lösung von @ sunapi386 schien etwas veraltet zu sein. Deshalb habe ich Folgendes versucht, was funktioniert hat:

Räumen Sie zuerst die vorherigen Bemühungen auf:

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

Folgen Sie dann dieser Anleitung, um Docker auf Rpi zu komponieren :

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

Für mich (am 1. November 2017) ergibt sich folgende Antwort auf docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219

6
Ihre Lösung funktioniert perfekt! Wenn Sie nicht die neueste Version von Docker-Compose benötigen, können Sie diese auch verwenden apt-get install docker-compose. Dies setzt natürlich voraus, dass Sie das Docker-Repository zur Quelle.Liste Ihrer Wohnung hinzugefügt haben (das Installationsskript von get.docker.com führt dies automatisch für Sie aus). Auf meinem Raspberry Pi 3 mit Raspian Stretch Lite führte dies jedoch zu einer wirklich alten Version : docker-compose version 1.8.0, build unknown. Diese Version ist so alt, dass sie nur Version 2 des Docker-Compose-Dateiformats unterstützt.
Robert

Genial, das hat mir geholfen, Docker-Comps-Fehler auf aws zu bekommen. Vielen Dank
Laser Hawk

1
Ich hatte einige Probleme und benutzte 'apt purge' und 'pip uninstall' für Docker-Compose und installierte es dann erneut (nicht sicher, ob einer oder beide), aber der wichtige Teil der Lösung war auch: pip install --upgrade docker-py
Mirek

Perfekt! ohne Curl-, Chmod- und Versionsprüfungen. Nur automatische Installation der letzten Version. Sollte als Antwort akzeptiert werden.
Cherry

Ich habe eine Menge Fehler bei der Verwendung von pip zur Installation von Docker-Compose erhalten. Wenn Sie dies auch tun, versuchen Sie diese Antwort stackoverflow.com/a/43012312/430773
Vik

10

Ich installiere auf einem Raspberry Pi 3 unter Raspbian OS. Die curlMethode wurde nicht in eine gültige Antwort aufgelöst. Es hieß auch {error: Not Found}, ich habe mir die URL angesehen https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7lund sie war ungültig. Ich denke, es gab dort keinen Build.

Dieser Leitfaden https://github.com/hypriot/arm-compose hat für mich funktioniert.

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

Wenn Sie Docker installiert haben, indem Sie das offizielle Repository zu Ihrer Repository-Liste hinzugefügt haben, wie folgt:

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

Mach einfach:

$ sudo apt-get install docker-compose

Im Falle einer RHEL-basierten Distribution / Fedora:

$ sudo dnf install docker-compose

1
Apt get - selbst nach dem Hinzufügen der für Docker CE angegebenen Repositorys scheint nur docker-compose1.8 zu enthalten , was mit einer maximalen docker-compose.ymlDatei der Version 2 kompatibel ist . Mit anderen Worten, sie veröffentlichen nicht mehr docker-composein apt-getStandard-Repositorys oder ihren eigenen Aptitories. Repository abrufen. Um neuere Versionen zu erhalten, müssen Sie diese anscheinend verwenden pip. Das ärgert mich, da es buchstäblich das einzige ist, wofür ich pip benutze.
Groostav

5

Bitte überprüfen Sie zunächst, ob Docker-Compose installiert ist.

$ docker-compose -v

Wenn es nicht installiert ist, lesen Sie bitte das Installationshandbuch https://docs.docker.com/compose/install/. Wenn es installiert ist, geben Sie der Binärdatei ausführbare Berechtigungen.

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

Überprüfen Sie, ob dies funktioniert.


5

Ich bin auf Debian, ich habe etwas ganz Natürliches gefunden:

apt-get install docker-compose

und es hat den Job gemacht (nicht auf Centos getestet)


1

Unter Bezugnahme auf die oben gegebenen Antworten (ich habe nicht genug Ruf, um separat auf einzelne Lösungen zu verweisen, daher mache ich dies gemeinsam an dieser Stelle), möchte ich sie mit einigen wichtigen Vorschlägen ergänzen:

  1. Docker-Compose können Sie aus dem Repository installieren (wenn Sie dieses Paket im Repository haben, wenn nicht, können Sie mit diesem Paket ein Repository zum System hinzufügen) oder Binärdateien mit curl - totourial auf der offiziellen Website des Projekts herunterladen - src: https://docs.docker.com/compose/install /

  2. Docker-Compose aus dem Repository ist in Version 1.8.0 (zumindest bei mir). Diese Docker-Compose-Version unterstützt keine Konfigurationsdateien in Version 3. Sie unterstützt nur Version = <2. Auf der offiziellen Website des Projekts finden Sie eine Empfehlung zur Verwendung der Containerkonfiguration in Version 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. Aus eigener Erfahrung mit der Arbeit im Docker empfehle ich die Verwendung von Containerkonfigurationen in Version 3 - es gibt mehr Konfigurationsoptionen als in Versionen <3. Wenn Sie die Konfigurationskonfigurationen in Version 3 verwenden möchten, müssen Sie Docker-Compose auf die Version von mindestens 1.17 aktualisieren / installieren - vorzugsweise auf den neuesten Stable. Die offizielle Seite des Projekts zeigt, wie dieser Prozess durchgeführt wird - src:https://docs.docker.com/compose/install/

  3. Wenn Sie versuchen, die alten Docker-Compose-Binärdateien manuell zu entfernen, können Sie Informationen über die fehlende Datei im Standardpfad haben /usr/local/bin/docker-compose. In meinem Fall befand sich Docker-Compose im Standardpfad / usr / bin / Docker-Compose. In diesem Fall schlage ich vor, dass Sie das Suchwerkzeug in Ihrem System verwenden, um die Binärdatei docker-compose zu finden - Beispielsyntax : sudo find / -name 'docker-compose'. Es hat mir geholfen. Dank dessen habe ich die alte Docker-Compose-Version entfernt und den Stable zum System hinzugefügt. Ich verwende das Curl-Tool, um die Docker-Compose-Binärdatei herunterzuladen, sie in den richtigen Pfad zu setzen und ihr die richtigen Berechtigungen zu erteilen wurde in den obigen Beiträgen beschrieben.

Grüße, Adam


0

Die Installation von Docker bedeutet nicht, dass Sie Docker-Compose installiert haben. Voraussetzung ist, dass Sie die Docker-Engine bereits installiert haben, was Sie bereits getan haben. Danach können Sie Docker-Compose über diesen Link für Centos 7 installieren .


Nein, ich habe diesen Befehl "yum install docker-engine" ausgeführt, aber ich erhalte den Fehler Paket docker-engine-1.11.0-1.el7.centos.x86_64 bereits installiert und neueste Version und immer noch kein Docker-Compose gibt mir Fehler / usr / local / bin / docker-compose: Zeile 1: {Fehler: Nicht gefunden}: Befehl nicht gefunden
mahen3d

Wie ich schon sagte: Docker Engine ist etwas anderes als Docker Compose. Sie können also die Docker-Engine installieren und nur mit Docker arbeiten. Wenn Sie jedoch Docker Compose verwenden möchten, müssen Sie diese separat installieren (wobei die Installation der Engine eine Voraussetzung ist (Sie haben dies bereits getan)). Also versuchen Sie jetzt den Link, den ich in der Antwort gegeben habe (Sie können Curl oder Pip verwenden, um Docker-Compose zu installieren)
lvthillo

0

Docker-Compose ist derzeit ein Tool, das Docker (-engine) verwendet, jedoch nicht in der Distribution von Docker enthalten ist.

Hier ist der Link zum Installationshandbuch: 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 wird sich in Zukunft ändern)



0

Die oben genannten Lösungen haben bei mir nicht funktioniert. Aber ich fand das funktioniert:

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.