Docker è installato ma Docker Compose non lo è? perché?


127

Ho installato docker su centos 7. eseguendo i seguenti comandi,

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

NOTA: helloworld funziona correttamente e senza problemi.

tuttavia, quando provo a eseguire docker-compose (docker-compose.yml esiste e valido) mi dà l'errore solo su Centos (la versione di Windows funziona bene per il file docker-compose)

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

5
Stranamente, per Windows e Mac tutto è caricato e disponibile mentre gli utenti Linux devono passare attraverso la fatica di digitare e installare separatamente le cose e capire le cose (il che è divertente ovviamente)
killjoy

Risposte:


277

È inoltre necessario installare Docker Compose. Vedere il manuale . Ecco i comandi che devi eseguire

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
Quando mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
eseguo

4
@kuanb se dice che il permesso non è permesso assicurati di avere tutti i diritti sudo
killstreet

Per ora la versione 1.7.0 è vecchia. Secondo docs.docker.com/compose/install la nuova versione è 1.11.2. Significa che invece di curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose dovrebbe essere usato curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy

1
Assicurati che il collegamento che punta alla versione di GitHub non sia obsoleto! Controlla le ultime versioni su GitHub . Puoi anche scaricare il file più recente dal browser, quindi spostarti e dare l'autorizzazione all'eseguibile per esso.
totymedli

1
Sto ancora imparando a conoscere docker, ma a quanto ho capito docker-compose non dovrebbe essere utilizzato per le nuove installazioni, poiché tutte le sue funzionalità sono state integrate nel docker-cli principale con docker stacke docker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Forse questa risposta dovrebbe menzionarlo, come appare per la prima volta su Google quando si cerca docker-compose
Eloims

40

Sto installando su un Raspberry Pi 3, con Raspbian 8. Il metodo curl non è riuscito per me (ho ricevuto un line 1: Not: command not founderrore su richiesta docker-compose --version) e la soluzione di @ sunapi386 sembrava un po 'obsoleta, quindi ho provato questo che ha funzionato:

Prima ripulisci le cose dagli sforzi precedenti:

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

Quindi segui questa guida su docker-compose su Rpi :

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

Per me (il 1 novembre 2017) questo si traduce nella seguente risposta a docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219

6
La tua soluzione funziona perfettamente! Se non hai bisogno dell'ultima versione di docker-compose, puoi anche usare apt-get install docker-compose. Ovviamente, questo richiede che tu abbia aggiunto il repository docker a sources.list di apt (lo script di installazione da get.docker.com lo esegue automaticamente per te). Tuttavia, sul mio Raspberry Pi 3 con Raspian Stretch Lite ciò ha determinato una versione molto vecchia: docker-compose version 1.8.0, build unknown. Questa versione è così vecchia che supporta solo la versione 2 del formato di file docker-compose.
robert

Fantastico, questo mi ha aiutato a ottenere l'errore docker-comps su aws. Grazie
Laser Hawk

1
Ho avuto alcuni problemi e ho usato 'apt purge' e 'pip uninstall' per docker-compose e quindi reinstallare di nuovo (non sono sicuro se uno o entrambi), ma la parte importante della soluzione era anche: pip install --upgrade docker-py
mirek

Perfetto! senza alcun ricciolo, chmod e verifiche di versione. Basta installare automaticamente l'ultima versione. Dovrebbe essere accettato come risposta.
Cherry

Ho un sacco di errori durante l'utilizzo di pip per installare docker-compose. Se lo fai anche tu, prova questa risposta stackoverflow.com/a/43012312/430773
Vik

10

Sto installando su un Raspberry Pi 3, su Raspbian OS. Il curlmetodo non si è risolto con una risposta valida. Diceva anche {error: Not Found}, ho dato un'occhiata all'URLhttps://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l e non era valido. Immagino che non ci fosse nessuna build lì.

Questa guida https://github.com/hypriot/arm-compose ha funzionato per me.

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

Se hai installato Docker aggiungendo il loro repository ufficiale al tuo elenco di repository, come:

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

Basta fare:

$ sudo apt-get install docker-compose

In caso di distribuzione / Fedora basata su RHEL:

$ sudo dnf install docker-compose

1
Apt get - anche dopo aver aggiunto i repository specificati per docker CE, sembra contenere solo docker-compose1.8, che è compatibile con un docker-compose.ymlfile massimo della versione 2. In altre parole, non pubblicano più docker-composenei apt-getrepository predefiniti o nel proprio apt- ottenere repository. Per ottenere versioni più recenti sembra che sia necessario utilizzare pip. Questo mi infastidisce, poiché è letteralmente l'unica cosa per cui sto usando pip.
Groostav

6

Sono su Debian, ho trovato qualcosa di abbastanza naturale da fare:

apt-get install docker-compose

e ha funzionato (non testato su centesimi)


5

prima di tutto controlla se docker-compose è installato,

$ docker-compose -v

Se non è installato, fare riferimento alla guida all'installazione https://docs.docker.com/compose/install/ Se installato, dare l'autorizzazione all'eseguibile al binario.

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

controlla se funziona.


1

Riferito alle risposte fornite sopra (non ho abbastanza reputazione per riferirmi separatamente a singole soluzioni, quindi lo faccio collettivamente in questo luogo), voglio integrarle con alcuni suggerimenti importanti:

  1. docker-compose puoi installare dal repository (se hai questo pacchetto nel repository, in caso contrario puoi aggiungere al sistema un repository con questo pacchetto) o scaricare il binario con uso curl - totourial sul sito ufficiale del progetto - src: https://docs.docker.com/compose/install /

  2. docker-compose dal repository è nella versione 1.8.0 (almeno per me). Questa versione docker-compose non supporta i file di configurazione nella versione 3. Ha solo il supporto versione = <2. Nel sito ufficiale del progetto si consiglia di utilizzare la configurazione del contenitore nella versione 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. In base alla mia esperienza personale con il lavoro nella finestra mobile, consiglio di utilizzare le configurazioni del contenitore nella versione 3: ci sono più opzioni di configurazione da utilizzare rispetto alle versioni <3. Se vuoi usare le configurazioni configurazioni nella versione 3 devi aggiornare / installare docker-compose alla versione di almeno 1.17 - preferibilmente l'ultima stabile. Il sito ufficiale del progetto spiega come eseguire questo processo - src: https://docs.docker.com/compose/install/

  3. quando si tenta di rimuovere manualmente i vecchi binari docker-compose, è possibile avere informazioni sul file mancante nel percorso predefinito /usr/local/bin/docker-compose. Nel mio caso, docker-compose era nel percorso predefinito / usr / bin / docker-compose. In questo caso, vi suggerisco di utilizzare lo strumento di ricerca nel sistema per trovare il file binario finestra mobile-composizione - esempio di sintassi: sudo find / -name 'docker-compose'. Mi ha aiutato. Grazie a questo, ho rimosso la vecchia versione docker-compose e aggiunto la stabile al sistema - utilizzo lo strumento curl per scaricare il file binario docker-compose, inserendolo nel percorso corretto e dandogli le giuste autorizzazioni - tutto questo processo ha stato descritto nei post sopra.

Saluti, Adam


0

L'installazione di docker non significa che hai installato docker-compose. Ha come prerequisiti che hai già installato il motore docker che hai già fatto. Dopodiché puoi installare docker-compose seguendo questo link per Centos 7.


No, ho eseguito il comando "yum install docker-engine" ma ricevo l'errore Pacchetto docker-engine-1.11.0-1.el7.centos.x86_64 già installato e ultima versione e ancora nessuna finestra mobile-compose mi dà errore / usr / local / bin / docker-compose: riga 1: {errore: non trovato}: comando non trovato
mahen3d

Come ho detto: il motore Docker è qualcosa di diverso da Docker compose. Quindi puoi installare il motore docker e lavorare con docker ma quando vuoi usare docker compose devi installarlo separatamente (dove l'installazione del motore è un prerequisito (l'hai già fatto)). Quindi prova ora il link che ho fornito nella risposta (puoi usare curl o pip per installare docker-compose)
lvthillo

0

docker-compose è attualmente uno strumento che utilizza docker (-engine) ma non è incluso nella distribuzione di docker.

Ecco il link al manuale di installazione: 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 cambierà in futuro)



0

Le soluzioni di cui sopra non hanno funzionato per me. Ma ho scoperto che ha funzionato:

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

Su Linux, puoi scaricare il file binario Docker Compose dalla pagina di rilascio del repository di Compose su GitHub. Segui le istruzioni dal collegamento, che implicano l'esecuzione del comando curl nel tuo terminale per scaricare i binari. Queste istruzioni dettagliate sono incluse anche di seguito.

1: eseguire questo comando per scaricare la versione stabile corrente di 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

Per installare una versione diversa di Compose, sostituire 1.26.2 con la versione di Compose che si desidera utilizzare.

2: applica le autorizzazioni eseguibili al file binario:

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

Nota: se il comando docker-compose non riesce dopo l'installazione, controlla il percorso. Puoi anche creare un collegamento simbolico a / usr / bin o qualsiasi altra directory nel tuo percorso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.