programa
Has ejecutado el instalador, has hecho clic en la configuración y Docker indica que está listo. Pero, ¿cómo puedes saberlo realmente? Todas las guías de Docker que se encuentran en línea dan por sentado que ya has verificado tu configuración, pero ninguna te explica cómo realizar ese paso de verificación.
La buena noticia es que Docker proporciona una imagen de prueba integrada llamada « hello-world » que confirma que todo funciona correctamente. Solo tienes que ejecutar un comando para obtener información instantánea sobre si Docker está configurado correctamente.
En este artículo, te mostraré qué hace la imagen hello-world, cómo ejecutarla, qué significa el resultado y cómo solucionar los problemas más comunes cuando algo sale mal.
Después de ejecutar el ejemplo Hello World, estarás listo para aprender los conceptos básicos de Docker. Nuestra curso de introducción a Docker te permitirá ponerte en marcha en una sola tarde.
¿Qué es Docker Hello World?
La imagen hello-world es la herramienta de diagnóstico oficial de Docker para comprobar tu instalación.
Docker mantiene esta imagen como el contenedor más pequeño posible que puede demostrar que Docker funciona. Es un pequeño ejecutable que muestra un mensaje de confirmación y se cierra. Eso es todo.
Docker ofrece hello-world porque los nuevos usuarios necesitan una forma rápida de verificar tres cosas:
- Docker está instalado correctamente en tu sistema.
- Tienes los permisos necesarios para ejecutar comandos de Docker.
- El demonio Docker está accesible y responde a las solicitudes.
Piensa en ello como ejecutar python --version después de instalar Python. Solo estás confirmando que la herramienta está lista para usar, aún no estás creando nada.
Cómo ejecutar Docker Hello World
Para ejecutar la imagen hello-world solo necesitas un comando.
docker run hello-world
Cuando ejecutas este comando, Docker hace dos cosas:
-
Comprueba si la imagen existe localmente. Docker busca en tu caché de imágenes local para ver si ya has descargado
hello-world. Si la imagen está ahí, Docker omite la descarga y pasa directamente a ejecutarla. -
Si la imagen no se encuentra localmente, Docker la obtiene de Docker Hub. Docker Hub es el registro predeterminado donde Docker almacena las imágenes oficiales. La imagen
hello-worldes muy pequeña, solo unos pocos kilobytes, por lo que la descarga se completa rápidamente.
Una vez que Docker tiene la imagen, crea y ejecuta un contenedor a partir de ella. El contenedor ejecuta su programa integrado, imprime el mensaje de confirmación y se cierra.
¿Qué sucede cuando ejecutas Docker Hello World?
A continuación, se describe el flujo paso a paso cuando ejecutas docker run hello-world.
En primer lugar, Docker comprueba si la imagen existe localmente. Busca en tu caché de imágenes local para ver si ya has descargado hello-world. Si la imagen está ahí, Docker pasa al siguiente paso. Si no es así, Docker se conecta a Docker Hub y descarga la imagen.
A continuación, Docker crea un contenedor a partir de la imagen. La imagen es como una plantilla: contiene el programa y todo lo necesario para ejecutarlo. El contenedor es la instancia real en ejecución de esa plantilla.
El contenedor ejecuta su programa, que imprime un mensaje de confirmación en tu terminal. Este mensaje explica lo que acaba de hacer Docker y confirma que todo funciona correctamente.
Finalmente, el contenedor sale. El programa « hello-world » no está diseñado para seguir funcionando. En su lugar, imprime el mensaje y se detiene inmediatamente. El contenedor sigue existiendo en tu sistema, pero se encuentra en estado detenido.
Todo este proceso se realiza automáticamente al ejecutar el comando; no es necesario que gestiones ninguno de estos pasos manualmente.
Comprender el resultado de «Hola mundo» en Docker
Cuando se ejecuta correctamente hello-world, aparecerá un mensaje de varias líneas que desglosa lo que acaba de suceder.

Salida de Docker run hello-world
La salida comienza con una confirmación de que Docker no pudo encontrar la imagen localmente, por lo que la obtuvo de Docker Hub. Verás algo como «No se puede encontrar la imagen 'hello-world:latest' localmente», seguido de barras de progreso de descarga.
A continuación aparece el mensaje principal que confirma que Docker funciona correctamente. Este mensaje te guía a través de los pasos exactos que siguió Docker. Explica que el demonio Docker extrajo la imagen, creó un contenedor a partir de ella, ejecutó el ejecutable en su interior y transmitió el resultado a tu terminal.
El mensaje también incluye los siguientes pasos que puedes intentar. Sugiere ejecutar un contenedor más interactivo como Ubuntu, que permanece en funcionamiento y te permite ejecutar comandos en su interior. Esto te ayuda a comprender la diferencia entre un contenedor de prueba único y los contenedores reales que utilizarás para el desarrollo.
Finalmente, verás la salida del contenedor. El programa hello-world está diseñado para imprimir su mensaje y detenerse inmediatamente; no es un servicio ni una aplicación de larga duración. El contenedor habrá cumplido su función una vez que confirme que Docker funciona.
Si ves esta salida completa sin errores, tu instalación de Docker funciona correctamente y estás listo para ejecutar contenedores reales.
Problemas comunes al ejecutar Docker Hello World
Incluso una prueba sencilla como « hello-world » puede fallar si Docker no está configurado correctamente. A continuación, se describen los problemas más comunes y cómo solucionarlos.
No se encuentra el comando Docker.
Si ves «docker: comando no encontrado» o «docker no se reconoce», significa que Docker no está instalado o no se encuentra en la ruta PATH de tu sistema.
En Linux, comprueba si Docker está instalado:
which docker

Ubicación del contenedor
Si no aparece ningún resultado, debes instalar Docker. En macOS y Windows, asegúrate de que Docker Desktop esté instalado y en ejecución.
Errores de permiso denegado
Es posible que aparezca el mensaje «permiso denegado al intentar conectarse al socket del demonio Docker».
Esto ocurre cuando tu cuenta de usuario no tiene permiso para acceder a Docker. En Linux, debes ejecutar Docker con sudo o añadir tu usuario al grupo docker:
sudo usermod -aG docker $USER
Cierra la sesión y vuelve a iniciarla para que el cambio surta efecto. En macOS y Windows con Docker Desktop, esto no supone ningún problema.
El demonio Docker no se está ejecutando.
Si aparece el mensaje «No se puede conectar al demonio Docker», significa que el servicio Docker no se está ejecutando.
En Linux, inicia el servicio Docker:
sudo systemctl start docker
En macOS y Windows, abre Docker Desktop. El demonio se inicia automáticamente cuando se ejecuta la aplicación. Verás un icono de Docker en la bandeja del sistema cuando esté listo.
Problemas de red al descargar la imagen
A veces, Docker no puede descargar la imagen hello-world de Docker Hub. Verás errores relacionados con fallos en la descarga o tiempos de espera de conexión agotados.
Comprueba primero tu conexión a Internet. Si estás detrás de un firewall corporativo o un proxy, es posible que tengas que configurar Docker para utilizarlo. En Linux, esto va en /etc/systemd/system/docker.service.d/http-proxy.conf. En Docker Desktop, puedes configurar el proxy en Configuración.
Si estas soluciones no funcionan, el mensaje de error suele indicarte la dirección correcta: léelo atentamente.
Qué hacer después de Docker Hello World
Ahora que has confirmado que Docker funciona, aquí tienes los siguientes pasos a seguir.
Ejecuta un contenedor real con un terminal interactivo. Intenta extraer y ejecutar un contenedor Ubuntu:
docker run -it ubuntu bash

Bash de Ubuntu
Las banderas ` -it ` te proporcionan un terminal interactivo dentro del contenedor. Puedes ejecutar comandos, instalar paquetes y explorar cómo funcionan los contenedores. Escribe « exit » para salir del contenedor.
Explora las imágenes disponibles en Docker Hub. Encontrarás imágenes oficiales para bases de datos como PostgreSQL y MySQL, lenguajes de programación como Python y Node.js, y herramientas como Redis y Nginx. Navega por hub.docker.com o busca directamente desde la línea de comandos:
docker search python

Imágenes Python disponibles.
Crea tu propia imagen con un archivo Dockerfile. Empieza por lo sencillo: Crea un archivo llamado Dockerfile que copie el código de tu aplicación en un contenedor y defina cómo ejecutarlo. Incluso un Dockerfile básico con un par de líneas te enseñará cómo se crean las imágenes a partir de instrucciones.
Conclusión
El comando « docker run hello-world » hace bien una cosa: Esto demuestra que tu instalación de Docker funciona.
No es una aplicación real. No te enseñará cómo crear contenedores ni implementar servicios de producción. Pero te dará tranquilidad, ya que sabrás que no hay ningún problema con tu instalación de Docker.
Si hello-world se ejecutó sin errores y mostró el mensaje de confirmación, tu entorno Docker está configurado correctamente y ya puedes empezar a trabajar con contenedores reales.
Entonces, ¿qué sigue? Realiza nuestro curso«Introducción a Docker» ( ) de. Te proporcionará los conocimientos básicos que necesitarás para trabajar en equipo. Después, crea algo útil siguiendo nuestras 10 ideas de proyectos Docker.
Domina Docker y Kubernetes
Preguntas frecuentes
¿Cómo puedes optimizar el tamaño de la imagen de Docker?
Comienza con imágenes base más pequeñas, como Alpine Linux, en lugar de imágenes completas de Ubuntu o Debian. Utiliza compilaciones en varias etapas para separar las dependencias de compilación de las dependencias de tiempo de ejecución; esto mantiene tu imagen final optimizada al excluir compiladores y herramientas de compilación. Además, combina los comandos RUN en tu Dockerfile para reducir el número de capas y utiliza .dockerignore para evitar que se copien archivos innecesarios en la imagen.
¿Cuáles son las mejores prácticas para utilizar Docker en producción?
Nunca ejecutes contenedores como root: crea un usuario que no sea root en tu Dockerfile y cambia a él. Utiliza etiquetas de imagen específicas en lugar de latest para garantizar implementaciones coherentes en todos los entornos. Establece límites de recursos (CPU y memoria) para tus contenedores a fin de evitar que un solo contenedor consuma todos los recursos del host. Las comprobaciones de estado también son importantes: defínelas en tu Dockerfile para que las herramientas de orquestación puedan detectar y reiniciar los contenedores que no funcionan correctamente.
¿Cómo integro Docker con los procesos de CI/CD?
La mayoría de las plataformas CI/CD, como GitHub Actions, GitLab CI y Jenkins, tienen compatibilidad integrada con Docker. Normalmente, crearás tu imagen de Docker como parte del proceso, la etiquetarás con el SHA de la confirmación o el número de versión, la enviarás a un registro de contenedores como Docker Hub o AWS ECR y, a continuación, la implementarás en tu entorno. La clave es automatizar el flujo de trabajo de compilación-etiquetado-envío-implementación, de modo que cada cambio en el código genere una imagen de contenedor probada y versionada.
¿Cuáles son las ventajas de utilizar compilaciones multietapa en Docker?
Las compilaciones en varias etapas te permiten utilizar un conjunto de herramientas para compilar tu aplicación y otro conjunto diferente, más pequeño, para ejecutarla. Por ejemplo, puedes compilar una aplicación Go en una etapa que incluya el compilador Go y, a continuación, copiar solo el binario compilado en una imagen Alpine mínima para la etapa final. Esto reduce drásticamente el tamaño de la imagen: una aplicación compilada puede necesitar 1 GB de herramientas de compilación, pero solo 20 MB para ejecutarse. Las imágenes más pequeñas permiten implementaciones más rápidas y reducen los costes de almacenamiento.
¿Cómo puedes garantizar que tus contenedores Docker se ejecuten de forma segura?
Escanea tus imágenes en busca de vulnerabilidades utilizando herramientas como Docker Scout o Trivy antes de implementarlas. No almacenes secretos en tu Dockerfile o en variables de entorno; utiliza secretos de Docker o herramientas externas de gestión de secretos. Mantén tus imágenes base actualizadas para obtener parches de seguridad y limita las capacidades del contenedor utilizando el indicador « --cap-drop » para eliminar las capacidades innecesarias de Linux. Además, utiliza sistemas de archivos de solo lectura siempre que sea posible y nunca expongas el socket de Docker dentro de los contenedores a menos que sea absolutamente necesario.


