¿Docker está instalado pero Docker Compose no? ¿por qué?


127

He instalado Docker en centos 7. ejecutando los siguientes comandos,

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

NOTA: helloworld se ejecuta correctamente y sin problemas.

sin embargo, cuando intento ejecutar docker-compose (docker-compose.yml existe y es válido) me da el error solo en Centos (la versión de Windows funciona bien para el archivo docker-compose)

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

5
Curiosamente, para Windows y Mac todo está cargado y disponible, mientras que los usuarios de Linux tienen que pasar por la monotonía de escribir e instalar cosas por separado y resolver las cosas (que es divertido, por supuesto)
killjoy

Respuestas:


277

También necesita instalar Docker Compose. Consulte el manual . Estos son los comandos que necesita ejecutar

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
Al ejecutar la segunda línea, recibo una respuesta:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb

4
@kuanb si dice el permiso no está permitido hacer u que tiene derechos completos sudo
killstreet

Por ahora, la versión 1.7.0 es antigua. Según docs.docker.com/compose/install, la nueva versión es 1.11.2. Significa que en lugar de curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose debería usarse curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy

1
¡Asegúrese de que el enlace que apunta a la versión de GitHub no esté desactualizado! Consulte las últimas versiones en GitHub . También puede descargar el archivo más reciente desde el navegador, luego simplemente muévalo y déle permiso ejecutable.
Totymedli

1
Todavía estoy aprendiendo sobre docker, pero según tengo entendido, docker-compose no debe usarse para nuevas instalaciones, ya que todas sus funciones se han integrado en el docker-cli principal con docker stacky docker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Tal vez esta respuesta debería mencionar eso, ya que aparece primero en Google cuando se busca docker-compose
Eloims

40

Estoy instalando en una Raspberry Pi 3, con Raspbian 8. El método curl falló para mí (obtuve un line 1: Not: command not founderror al solicitarlo docker-compose --version) y la solución de @ sunapi386 parecía un poco desactualizada, así que probé esto que funcionó:

Primero limpie las cosas de los esfuerzos anteriores:

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

Luego, siga esta guía para volver a docker-compose en Rpi :

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

Para mí (el 1 de noviembre de 2017), esto da como resultado la siguiente respuesta a docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219

6
¡Tu solución funciona perfectamente! Si no necesita la última versión de docker-compose, también puede usar apt-get install docker-compose. Por supuesto, esto requiere que agregue el repositorio de Docker a su apt's sources.list (el script de instalación de get.docker.com realiza esto automáticamente por usted). Sin embargo, en mi Frambuesa Pi 3 con Raspian estiramiento Lite esto dio lugar a una versión muy antigua: docker-compose version 1.8.0, build unknown. Esta versión es tan antigua que solo es compatible con la versión 2 del formato de archivo docker-compose.
Robert

Impresionante, esto me ayudó a obtener el error docker-comps en aws. Gracias
Laser Hawk

1
Tuve algunos problemas y usé 'apt purge' y 'pip uninstall' para docker-compose y luego reinstalé nuevamente (no estoy seguro si uno o ambos), pero la parte importante de la solución también fue: pip install --upgrade docker-py
mirek

¡Perfecto! sin verificaciones de curl, chmod y versión. Solo instala automáticamente la última versión. Debe aceptarse como respuesta.
Cherry

Obtuve un montón de errores al usar pip para instalar docker-compose. Si usted también lo hace, pruebe esta respuesta stackoverflow.com/a/43012312/430773
Vik

10

Estoy instalando en una Raspberry Pi 3, en Raspbian OS. El curlmétodo no se resolvió con una respuesta válida. También decía {error: Not Found}, eché un vistazo a la URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7ly no era válida. Supongo que no había ninguna construcción allí.

Esta guía https://github.com/hypriot/arm-compose funcionó para mí.

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

Si instaló Docker agregando su repositorio oficial a su lista de repositorios, como:

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

Solo haz:

$ sudo apt-get install docker-compose

En caso de una distribución basada en RHEL / Fedora:

$ sudo dnf install docker-compose

1
Apt get, incluso después de agregar los repositorios que especifican para Docker CE, parece contener solo docker-compose1.8, que es compatible con un docker-compose.ymlarchivo máximo de la versión 2. En otras palabras, ya no publican docker-composeen apt-getlos repositorios predeterminados o en su propio apt. obtener repositorio. Para obtener versiones más nuevas, parece que necesita usar pip. Esto me molesta, ya que es literalmente para lo único que estoy usando pip.
Groostav

6

Estoy en debian, encontré algo bastante natural para hacer:

apt-get install docker-compose

e hizo el trabajo (no probado en centos)


5

en primer lugar, compruebe si Docker-compose está instalado,

$ docker-compose -v

Si no está instalado, consulte la guía de instalación https://docs.docker.com/compose/install/ Si está instalado, otorgue permiso de ejecución al binario.

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

compruebe si esto funciona.


1

En referencia a las respuestas dadas anteriormente (no tengo suficiente reputación para referirme por separado a soluciones individuales, por lo tanto, hago esto colectivamente en este lugar), quiero complementarlas con algunas sugerencias importantes:

  1. docker-compose puede instalar desde el repositorio (si tiene este paquete en el repositorio, si no, puede agregar al sistema un repositorio con este paquete) o descargar el binario con el uso de curl - totourial en el sitio web oficial del proyecto - src: https://docs.docker.com/compose/install /

  2. docker-compose desde el repositorio está en la versión 1.8.0 (al menos en mí). Esta versión de docker-compose no admite archivos de configuración en la versión 3. Solo tiene compatibilidad con la versión = <2. En el sitio oficial del proyecto hay una recomendación para usar la configuración del contenedor en la versión 3 - src: https://docs.docker.com/compose/compose-file / compose-versioning /. Desde mi propia experiencia con el trabajo en la ventana acoplable, recomiendo usar configuraciones de contenedor en la versión 3; hay más opciones de configuración para usar que en las versiones <3. Si desea usar las configuraciones de la versión 3, debe actualizar / instalar docker-compose a la versión de al menos 1.17, preferiblemente la última versión estable. El sitio oficial del proyecto es toturial cómo hacer este proceso - src:https://docs.docker.com/compose/install/

  3. cuando intenta eliminar manualmente los antiguos archivos binarios de composición de Docker, puede tener información sobre el archivo que falta en la ruta predeterminada /usr/local/bin/docker-compose. En mi caso, docker-compose estaba en la ruta predeterminada / usr / bin / docker-compose. En este caso, le sugiero que utilice la herramienta de búsqueda en el sistema para buscar el archivo binario de composición del cargador de muelle - ejemplo de sintaxis: sudo find / -name 'docker-compose'. Me ayudó. Gracias a esto, eliminé la versión anterior de docker-compose y agregué el establo al sistema; uso la herramienta curl para descargar el archivo binario docker-compose, colocándolo en la ruta correcta y otorgándole los permisos correctos; todo este proceso tiene se ha descrito en las publicaciones anteriores.

Saludos, Adam


0

La instalación de docker no significa que haya instalado docker-compose. Tiene como requisitos previos que ya haya instalado el motor de la ventana acoplable, lo que ya hizo. Después de eso, puede instalar docker-compose siguiendo este enlace para Centos 7.


No, ejecuté ese comando "yum install docker-engine" pero obtengo el error Package docker-engine-1.11.0-1.el7.centos.x86_64 ya está instalado y la última versión y todavía no docker-compose me da un error / usr / local / bin / docker-compose: línea 1: {error: no encontrado}: comando no encontrado
mahen3d

Como dije: el motor de Docker es algo diferente a la composición de Docker. Por lo tanto, puede instalar el motor de la ventana acoplable y simplemente trabajar con la ventana acoplable, pero cuando quiera usar la ventana acoplable compose, debe instalarlo por separado (donde la instalación del motor es un requisito previo (ya lo ha hecho)). Así que pruebe ahora el enlace que di en la respuesta (puede usar curl o pip para instalar docker-compose)
lvthillo

0

docker-compose es actualmente una herramienta que utiliza docker (-engine) pero no está incluida en la distribución de docker.

Aquí está el enlace al manual de instalación: 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 cambiará en el futuro)



0

Las soluciones anteriores no funcionaron para mí. Pero encontré esto que funcionó:

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

En Linux, puede descargar el binario de Docker Compose desde la página de lanzamiento del repositorio de Compose en GitHub. Siga las instrucciones del enlace, que implican ejecutar el comando curl en su terminal para descargar los binarios. Estas instrucciones paso a paso también se incluyen a continuación.

1: Ejecute este comando para descargar la versión estable actual 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

Para instalar una versión diferente de Compose, sustituya 1.26.2 por la versión de Compose que desea utilizar.

2: aplique permisos ejecutables al binario:

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

Nota: Si el comando docker-compose falla después de la instalación, verifique su ruta. También puede crear un enlace simbólico a / usr / bin o cualquier otro directorio en su ruta.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.