Does node alpine come with npm?

Solucionando el error 'docker: command not found'

30/05/2018

Valoración: 4.42 (1888 votos)

Docker se ha convertido en una herramienta fundamental en el mundo del desarrollo de software. Su capacidad para crear, desplegar y ejecutar aplicaciones dentro de contenedores aislados garantiza que el software se comporte de manera fiable en diferentes entornos, desde el portátil de un desarrollador hasta la nube. Sin embargo, incluso las herramientas más robustas pueden presentar obstáculos, y uno de los más comunes y desconcertantes para los recién llegados es el error 'docker: command not found'. Este error puede detener tu flujo de trabajo por completo, pero la buena noticia es que sus causas suelen ser sencillas y su solución, directa. En este artículo, desglosaremos por qué aparece este mensaje y te guiaremos a través de los métodos más efectivos para resolverlo y poner en marcha tus contenedores.

Why can't Linux find my file?
If you receive the File Not Found error on your Linux system, it typically means that the file or directory you are attempting to access does not exist. It could also indicate that you do not have the proper file permissions on the file or directory.
Índice de Contenido

Entendiendo las Causas del Error 'docker: command not found'

Aunque puede ser frustrante y hacerte dudar de tu configuración, este error generalmente se debe a un par de culpables muy específicos. Comprender la raíz del problema es el primer paso para aplicar la solución correcta.

  • Instalación de Docker Ausente: La causa más obvia y frecuente es, simplemente, que Docker no está instalado en tu sistema. A menudo, asumimos que una herramienta tan popular ya viene preinstalada o que la instalamos en el pasado y lo olvidamos. En sistemas basados en Debian/Ubuntu, el propio terminal suele ofrecer pistas, sugiriendo comandos para instalar Docker a través de Snap o el gestor de paquetes APT.
  • Ruta de Docker ($PATH) Incorrecta: La variable de entorno $PATH es crucial en los sistemas operativos tipo Unix. Le dice al shell (la línea de comandos) en qué directorios buscar archivos ejecutables cuando escribes un comando. Durante una instalación estándar, el ejecutable de Docker se añade automáticamente a esta ruta. Sin embargo, si Docker se instaló en una ubicación no convencional o si la configuración de la variable $PATH se modificó manualmente, el shell no sabrá dónde encontrar el comando 'docker', resultando en el error 'command not found'.

Guía Paso a Paso para Solucionar el Error

Ahora que conocemos las causas probables, veamos las soluciones prácticas para que puedas volver a utilizar Docker sin interrupciones.

Solución 1: Verificar e Instalar Docker

Lo primero es lo primero: debemos confirmar si Docker está realmente instalado en nuestro sistema. La forma más rápida de hacerlo es intentar verificar su versión. Abre tu terminal y ejecuta:

docker --version

Si recibes una respuesta con un número de versión (por ejemplo, 'Docker version 20.10.17, build 100c701'), Docker está instalado y puedes saltar a las siguientes soluciones. Si, por el contrario, ves el error 'command not found', es hora de instalarlo. A continuación, te mostramos cómo hacerlo en las distribuciones de Linux más populares.

Instalación en Debian / Ubuntu

Para sistemas basados en Debian como Ubuntu, el proceso es muy sencillo utilizando el gestor de paquetes APT.

1. Primero, actualiza la lista de paquetes para asegurarte de que tienes acceso a las últimas versiones disponibles:

sudo apt update

2. A continuación, instala el paquete `docker.io`, que es la versión de Docker disponible en los repositorios oficiales de Ubuntu:

sudo apt install docker.io -y

Una vez finalizada la instalación, el servicio de Docker debería iniciarse automáticamente. Puedes verificarlo con el comando `sudo systemctl status docker`.

Instalación en Distribuciones Basadas en RHEL (CentOS, Fedora)

En sistemas como CentOS, Fedora o Red Hat Enterprise Linux, el proceso requiere añadir primero el repositorio oficial de Docker.

What is the error docker not found?
Causes of the docker command not found error Missing Docker installation: This error is likely caused by Docker not being installed on your system. On Debian/Ubuntu systems, a few commands will be printed on the terminal below the error, guiding you through installing Docker with Snap or the APT package manager.

1. Instala el paquete `yum-utils`, que proporciona la herramienta `yum-config-manager`:

sudo yum install yum-utils

2. Ahora, añade el repositorio oficial de Docker a tu sistema:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. Finalmente, instala la última versión de Docker Engine (docker-ce), la CLI y containerd:

sudo yum install docker-ce docker-ce-cli containerd.io -y

A diferencia de Debian, en las distribuciones RHEL, el servicio de Docker no se inicia por defecto. Debes iniciarlo manualmente:

sudo systemctl start docker

También puedes habilitarlo para que se inicie automáticamente cada vez que arranque el sistema con `sudo systemctl enable docker`.

Instalación en Arch Linux

Los usuarios de Arch Linux y sus derivados (como Manjaro) pueden instalar Docker directamente desde los repositorios oficiales usando pacman.

1. Asegúrate de que tu sistema está completamente actualizado:

sudo pacman -Syu

2. Instala el paquete de Docker:

sudo pacman -S docker

3. Al igual que en RHEL, necesitas iniciar el daemon de Docker manualmente:

sudo systemctl start docker

Tabla Comparativa de Instalación

DistribuciónComando de Instalación PrincipalIniciar Servicio
Debian / Ubuntusudo apt install docker.io -yAutomático
RHEL / CentOS / Fedorasudo yum install docker-ce ... -ysudo systemctl start docker
Arch Linuxsudo pacman -S dockersudo systemctl start docker

Solución 2: Añadir Docker a la Variable de Entorno $PATH

Si has confirmado que Docker está instalado pero el error persiste, es muy probable que el problema resida en la variable $PATH. Para comprobarlo, puedes preguntar al sistema dónde se encuentra el ejecutable de Docker:

which docker

La salida esperada debería ser algo como `/usr/bin/docker`. Si no obtienes ninguna salida o la ruta es diferente, necesitas añadir la ubicación correcta a tu $PATH. Asumiendo que la ruta correcta es `/usr/bin/docker`, sigue estos pasos:

1. Abre el archivo de configuración de tu shell. Para la mayoría de los usuarios que usan bash, este es `~/.bashrc`:

nano ~/.bashrc

2. Ve al final del archivo y añade la siguiente línea. Esto le indica al shell que incluya el directorio de Docker en su lista de lugares para buscar comandos:

export PATH="$PATH:/usr/bin/docker"

3. Guarda el archivo (Ctrl+O en nano) y ciérralo (Ctrl+X). Para que los cambios surtan efecto inmediatamente en tu sesión de terminal actual, recarga la configuración:

source ~/.bashrc

Después de esto, intenta ejecutar `docker --version` de nuevo. El error debería haber desaparecido.

Solución 3: Reiniciar el Demonio (Daemon) de Docker

A veces, el servicio de Docker puede estar en un estado inconsistente o no haberse iniciado correctamente. Un simple reinicio puede solucionar problemas inesperados, incluido el de no encontrar el comando si el socket no está disponible.

1. Para reiniciar el servicio de Docker, utiliza systemctl:

sudo systemctl restart docker

2. Después de reiniciarlo, es una buena práctica verificar su estado para asegurarse de que está activo y funcionando sin errores:

sudo systemctl status docker

Deberías ver una salida que indica `Active: active (running)`. Si el servicio está funcionando correctamente, el sistema debería ser capaz de encontrar y ejecutar los comandos de Docker sin problemas.

Preguntas Frecuentes (FAQ)

¿Por qué necesito `sudo` para ejecutar los comandos de Docker?
Por defecto, el daemon de Docker se enlaza a un socket de Unix en lugar de a un puerto TCP. Este socket es propiedad del usuario `root`, y otros usuarios solo pueden acceder a él usando `sudo`. Para evitar escribir `sudo` cada vez, puedes añadir tu usuario al grupo `docker`, que se crea durante la instalación. El comando para hacerlo es `sudo usermod -aG docker $USER`. Después de ejecutarlo, necesitarás cerrar sesión y volver a iniciarla para que el cambio surta efecto.

Instalé Docker, pero el error persiste incluso después de reiniciar el terminal. ¿Qué hago?
Si la instalación fue correcta, el problema casi seguro es la variable $PATH. Vuelve a verificar con `which docker` para ver si el sistema puede localizar el binario. Si no puede, revisa los pasos para editar tu archivo `.bashrc` o el archivo de configuración de tu shell correspondiente (como `.zshrc` si usas Zsh) para asegurarte de que la ruta al ejecutable de Docker esté incluida correctamente.

¿Cuál es la diferencia entre `docker.io` y `docker-ce`?
`docker.io` es el nombre del paquete que se encuentra en los repositorios oficiales de distribuciones como Debian y Ubuntu. `docker-ce` (Community Edition) es el paquete proporcionado directamente por Docker desde sus propios repositorios oficiales. Generalmente, `docker-ce` ofrece versiones más recientes, mientras que `docker.io` puede ser una versión más antigua pero probada y mantenida por la distribución.

En conclusión, el error 'docker: command not found' es un obstáculo común pero superable. Siguiendo metódicamente los pasos de verificación y solución de problemas descritos en esta guía, desde asegurar una correcta instalación hasta configurar adecuadamente la variable $PATH, podrás resolver el problema eficazmente y continuar aprovechando el poder de la contenerización en tus proyectos.

Si quieres conocer otros artículos parecidos a Solucionando el error 'docker: command not found' puedes visitar la categoría Automovilismo.

Subir