Docker est installé mais Docker Compose ne l'est pas? Pourquoi?

127

J'ai installé docker sur centos 7. en exécutant les commandes suivantes,

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

REMARQUE: helloworld fonctionne correctement et aucun problème.

cependant, lorsque j'essaie d'exécuter docker-compose (docker-compose.yml existe et est valide), cela me donne l'erreur sur Centos uniquement (la version Windows fonctionne bien pour le fichier docker-compose)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
mahen3d
la source
5
Curieusement, pour Windows et Mac, tout est chargé et disponible tandis que les utilisateurs de Linux doivent passer par la corvée de taper et d'installer des éléments séparément et de trouver des éléments (ce qui est amusant bien sûr)
killjoy

Réponses:

277

Vous devez également installer Docker Compose. Consultez le manuel . Voici les commandes que vous devez exécuter

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
la source
4
Lors de l'exécution de la deuxième ligne, je reçois une réponse:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb
4
@kuanb s'il dit que la permission n'est pas autorisée, assurez-vous d'avoir tous les droits sudo
killstreet
Pour l'instant, la version 1.7.0 est ancienne. Selon docs.docker.com/compose/install, la nouvelle version est la 1.11.2. Cela signifie qu'au lieu de curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose doit être utilisé curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy
1
Assurez-vous que le lien pointant vers la version de GitHub n'est pas obsolète! Découvrez les dernières versions sur GitHub . Vous pouvez également télécharger le dernier fichier à partir du navigateur, puis déplacez-le simplement et donnez-lui l'autorisation d'exécuter.
totymedli
1
J'apprends encore à propos de docker, mais si je comprends bien, docker-compose ne doit pas être utilisé pour les nouvelles installations, car toutes ses fonctionnalités ont été intégrées dans le docker-cli principal avec docker stacket docker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Peut-être que cette réponse devrait mentionner cela, comme il apparaît en premier sur Google lors de la recherche de docker-compose
Eloims
40

J'installe sur un Raspberry Pi 3, avec Raspbian 8. La méthode curl a échoué pour moi (j'ai obtenu une line 1: Not: command not founderreur en demandant docker-compose --version) et la solution de @ sunapi386 semblait un peu dépassée, alors j'ai essayé ceci qui a fonctionné:

Commencez par nettoyer les choses des efforts précédents:

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

Suivez ensuite ces instructions concernant docker-compose sur Rpi :

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

Pour moi (le 1 novembre 2017), cela se traduit par la réponse suivante à docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219
Scott Veirs
la source
6
Votre solution fonctionne parfaitement! Si vous n'avez pas besoin de la dernière version de docker-compose, vous pouvez également utiliser apt-get install docker-compose. Bien sûr, cela nécessite que vous ajoutiez le référentiel docker à la liste des sources de votre apt (le script d'installation de get.docker.com le fait automatiquement pour vous). Cependant, sur mon Raspberry Pi 3 avec Raspian extensible Lite est résulté une version vraiment vieux: docker-compose version 1.8.0, build unknown. Cette version est si ancienne qu'elle ne prend en charge que la version 2 du format de fichier docker-compose.
robert
Génial, cela m'a aidé à obtenir une erreur de docker-comps sur aws. Merci
Laser Hawk
1
J'ai eu quelques problèmes et j'ai utilisé 'apt purge' et 'pip uninstall' pour docker-compose, puis réinstaller à nouveau (je ne sais pas si l'un ou les deux), mais la partie importante de la solution était aussi: pip install --upgrade docker-py
mirek
Parfait! sans aucune vérification de curl, chmod et version. Juste installer automatiquement la dernière version. Doit être accepté comme réponse.
Cherry
Vous avez une tonne d'erreurs lors de l'utilisation de pip pour installer docker-compose. Si vous le faites aussi, essayez cette réponse stackoverflow.com/a/43012312/430773
Vik
10

J'installe sur un Raspberry Pi 3, sur un OS Raspbian. La curlméthode n'a pas abouti à une réponse valide. Il a également dit {error: Not Found}, j'ai jeté un coup d'œil à l'URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7let ce n'était pas valide. Je suppose qu'il n'y avait pas de construction là-bas.

Ce guide https://github.com/hypriot/arm-compose a fonctionné pour moi.

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
la source
9

Si vous avez installé docker en ajoutant leur référentiel officiel à votre liste de référentiels, comme:

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

Faites simplement:

$ sudo apt-get install docker-compose

Dans le cas d'une distribution basée sur RHEL / Fedora:

$ sudo dnf install docker-compose
Gayan Weerakutti
la source
1
Apt get - même après avoir ajouté les référentiels qu'ils spécifient pour docker CE, semble ne contenir que la version docker-compose1.8, qui est compatible avec un docker-compose.ymlfichier maximum de la version 2. En d'autres termes, ils ne publient plus docker-composedans les apt-getréférentiels par défaut ou leur propre apt- obtenir le référentiel. Afin d'obtenir des versions plus récentes, il semble que vous deviez utiliser pip. Cela m'ennuie, car c'est littéralement la seule chose pour laquelle j'utilise pip.
Groostav
6

Je suis sur debian, j'ai trouvé quelque chose d'assez naturel à faire:

apt-get install docker-compose

et ça a fait le boulot (non testé sur centos)

herve-guerin
la source
5

tout d'abord veuillez vérifier si docker-compose est installé,

$ docker-compose -v

S'il n'est pas installé, veuillez vous référer au guide d'installation https://docs.docker.com/compose/install/ S'il est installé, donnez l'autorisation exécutable au binaire.

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

vérifiez si cela fonctionne.

UN FILS
la source
1

En référence aux réponses données ci-dessus (je n'ai pas assez de réputation pour faire référence séparément à des solutions individuelles, donc je le fais collectivement à cet endroit), je souhaite les compléter avec quelques suggestions importantes:

  1. docker-compose vous pouvez installer à partir du référentiel (si vous avez ce paquet dans le référentiel, sinon vous pouvez ajouter au système un référentiel avec ce paquet) ou télécharger le binaire avec use curl - totourial sur le site officiel du projet - src: https://docs.docker.com/compose/install /

  2. docker-compose du référentiel est en version 1.8.0 (du moins chez moi). Cette version docker-compose ne prend pas en charge les fichiers de configuration dans la version 3. Elle ne prend en charge que la version = <2. Sur le site officiel du projet, il y a une recommandation d'utiliser la configuration du conteneur dans la version 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. D'après ma propre expérience de travail dans le docker, je recommande d'utiliser des configurations de conteneur dans la version 3 - il y a plus d'options de configuration à utiliser que dans les versions <3. Si vous souhaitez utiliser les configurations de configuration de la version 3, vous devez mettre à jour / installer docker-compose vers la version d'au moins 1.17 - de préférence la dernière version stable. Le site officiel du projet explique comment faire ce processus - src:https://docs.docker.com/compose/install/

  3. lorsque vous essayez de supprimer manuellement les anciens binaires docker-compose, vous pouvez avoir des informations sur le fichier manquant dans le chemin par défaut /usr/local/bin/docker-compose. Dans mon cas, docker-compose était dans le chemin par défaut / usr / bin / docker-compose. Dans ce cas, je vous suggère d' utiliser l'outil de recherche dans votre système pour trouver le fichier binaire docker-Compose - exemple de syntaxe: sudo find / -name 'docker-compose'. Ça m'a aidé. Grâce à cela, j'ai supprimé l'ancienne version de docker-compose et ajouté l'écurie au système - j'utilise l'outil curl pour télécharger le fichier binaire docker-compose, en le plaçant dans le bon chemin et en lui donnant les bonnes autorisations - tout ce processus a décrit dans les articles ci-dessus.

Cordialement, Adam

Adam Wądołkowski
la source
0

L'installation de docker ne signifie pas que vous avez installé docker-compose. Il a pour prérequis que vous avez déjà installé le moteur Docker, ce que vous avez déjà fait. Après cela, vous pourrez installer docker-compose en suivant ce lien pour Centos 7.

lvthillo
la source
Non, j'ai exécuté cette commande "yum install docker-engine" mais j'obtiens l'erreur Package docker-engine-1.11.0-1.el7.centos.x86_64 déjà installé et dernière version et toujours pas de docker-compose cela me donne une erreur / usr / local / bin / docker-compose: ligne 1: {erreur: introuvable}: commande non trouvée
mahen3d
Comme je l'ai dit: le moteur Docker est différent de celui de Docker. Vous pouvez donc installer le moteur docker et travailler simplement avec docker, mais lorsque vous souhaitez utiliser docker compose, vous devez l'installer séparément (où l'installation du moteur est une prérequis (vous avez déjà fait cela)). Alors essayez maintenant le lien que j'ai donné dans la réponse (vous pouvez utiliser curl ou pip pour installer docker-compose)
lvthillo
0

docker-compose est actuellement un outil qui utilise docker (-engine) mais n'est pas inclus dans la distribution de docker.

Voici le lien vers le manuel d'installation: 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 changera dans le futur)

Patrick Cornelissen
la source
0

Les solutions ci-dessus n'ont pas fonctionné pour moi. Mais j'ai trouvé cela qui a fonctionné:

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
la source
0

Sous Linux, vous pouvez télécharger le binaire Docker Compose à partir de la page de publication du référentiel Compose sur GitHub. Suivez les instructions du lien, qui impliquent d'exécuter la commande curl dans votre terminal pour télécharger les binaires. Ces instructions étape par étape sont également incluses ci-dessous.

1: Exécutez cette commande pour télécharger la version stable actuelle de 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

Pour installer une version différente de Compose, remplacez 1.26.2 par la version de Compose que vous souhaitez utiliser.

2: appliquez les autorisations exécutables au binaire:

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

Remarque: si la commande docker-compose échoue après l'installation, vérifiez votre chemin. Vous pouvez également créer un lien symbolique vers / usr / bin ou tout autre répertoire de votre chemin.

Kashif
la source