3 votos

Docker: 'compose' no es un comando de docker

Instalé el docker-engine en macOS desde
https://docs.docker.com/desktop/install/mac-install/
que dice,

La instalación de Docker Desktop incluye Docker Engine, Docker CLI client, Docker Compose, Notary, Kubernetes y Credential Helper.

Pero al usar docker-compose, obtengo:

docker: 'compose' no es un comando de docker.

¿Qué está mal por favor?

Registro completo:

$ /Applications/Docker.app/Contents/Resources/bin/docker -v
Versión de Docker 24.0.7, compilación afdd53b

$ /Applications/Docker.app/Contents/Resources/bin/docker-compose -v
docker: 'compose' no es un comando de docker.
Ver 'docker --help'

$ sw_vers
Nombre del Producto:            macOS
Versión del Producto:         14.2.1
Versión de Compilación:           23C71

ACTUALIZACIÓN:

Es una pregunta inválida -- el problema está en otro lugar:

$ type docker
docker se encuentra en /usr/local/bin/docker

$ ls -l /usr/local/bin/docker*
ls: no puede leer el enlace simbólico '/usr/local/bin/docker': Permiso denegado
ls: no puede leer el enlace simbólico '/usr/local/bin/docker-credential-desktop': Permiso denegado
ls: no puede leer el enlace simbólico '/usr/local/bin/docker-credential-ecr-login': Permiso denegado
ls: no puede leer el enlace simbólico '/usr/local/bin/docker-credential-osxkeychain': Permiso denegado
ls: no puede leer el enlace simbólico '/usr/local/bin/docker-index': Permiso denegado
lrwxr-x--x 1 root wheel 54 Feb  2 13:46 /usr/local/bin/docker
lrwxr-x--x 1 root wheel 73 Feb  2 13:46 /usr/local/bin/docker-credential-desktop
lrwxr-x--x 1 root wheel 75 Feb  2 13:46 /usr/local/bin/docker-credential-ecr-login
lrwxr-x--x 1 root wheel 77 Feb  2 13:46 /usr/local/bin/docker-credential-osxkeychain
lrwxr-x--x 1 root wheel 60 Feb  2 13:46 /usr/local/bin/docker-index

Es decir, hice un enlace simbólico de las aplicaciones de docker en /usr/local/bin/ pero de alguna manera fallaron:

$ sudo rm /usr/local/bin/docker*

$ ls -l /usr/local/bin/docker*
ls: no se puede acceder a '/usr/local/bin/docker*': No existe el archivo o directorio

$ sudo ln -s /Applications/Docker.app/Contents/Resources/bin/docker /usr/local/bin

$ ls -l /usr/local/bin/docker*
ls: no puede leer el enlace simbólico '/usr/local/bin/docker': Permiso denegado
lrwxr-x--x 1 root wheel 54 Feb  3 15:09 /usr/local/bin/docker

Sin embargo, no sé cómo, pero después de intentarlo varias veces, de repente funciona:

$ ls -l /usr/local/bin/docker*
lrwxr-xr-x 1 root wheel 54 Feb  3 15:15 /usr/local/bin/docker -> /Applications/Docker.app/Contents/Resources/bin/docker
lrwxr-xr-x 1 root wheel 62 Feb  3 15:15 /usr/local/bin/docker-compose -> /Applications/Docker.app/Contents/Resources/bin/docker-compose
lrwxr-xr-x 1 root wheel 73 Feb  3 15:15 /usr/local/bin/docker-credential-desktop -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-desktop
lrwxr-xr-x 1 root wheel 75 Feb  3 15:15 /usr/local/bin/docker-credential-ecr-login -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-ecr-login
lrwxr-xr-x 1 root wheel 77 Feb  3 15:15 /usr/local/bin/docker-credential-osxkeychain -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-osxkeychain
lrwxr-xr-x 1 root wheel 60 Feb  3 15:15 /usr/local/bin/docker-index -> /Applications/Docker.app/Contents/Resources/bin/docker-index

$ docker-compose -v
Versión de Docker Compose v2.23.3-desktop.2

No sé por qué no funcionaba y, no sé cómo funciona de nuevo, así que acepto cualquier respuesta que tenga y sigo adelante.

2voto

SteveM Puntos 46

Al parecer, tu sintaxis es incorrecta, ya que el "-" entre "docker" y "compose" no es correcto. Intenta:

~ ➤ docker compose version
Docker Compose versión v2.24.3-desktop.1

El comando help muestra Uso: docker [OPTIONS] COMMAND.

2voto

Al instalar "Docker Desktop" se añaden los comandos de la CLI en /usr/local/bin, por lo que nunca deberías necesitar llamar directamente a los binarios en /Applications/Docker.app/Contents/Resources/bin.

$ ls -l /usr/local/bin/docker*
lrwxr-xr-x  1 root  admin  54 Feb  6  2022 /usr/local/bin/docker@ -> /Applications/Docker.app/Contents/Resources/bin/docker
lrwxr-xr-x  1 root  admin  62 Feb  6  2022 /usr/local/bin/docker-compose@ -> /Applications/Docker.app/Contents/Resources/bin/docker-compose
lrwxr-xr-x  1 root  admin  80 Feb  6  2022 /usr/local/bin/docker-compose-v1@ -> /Applications/Docker.app/Contents/Resources/bin/docker-compose-v1/docker-compose
lrwxr-xr-x  1 root  admin  73 Feb  6  2022 /usr/local/bin/docker-credential-desktop@ -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-desktop
lrwxr-xr-x  1 root  admin  75 Feb  6  2022 /usr/local/bin/docker-credential-ecr-login@ -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-ecr-login
lrwxr-xr-x  1 root  admin  77 Feb  6  2022 /usr/local/bin/docker-credential-osxkeychain@ -> /Applications/Docker.app/Contents/Resources/bin/docker-credential-osxkeychain

Si docker-compose falla como en la pregunta, puedes verificar los comandos reales llamados con type docker y type docker-compose, y la existencia de los enlaces simbólicos con ls -l /usr/local/bin/docker*.

Si algo parece estar mal, entonces puedes eliminar y reinstalar "Docker Desktop" o ejecutar sudo ln -fs /Applications/Docker.app/Contents/Resources/bin/* /usr/local/bin/ para corregir los enlaces simbólicos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X