Guía para Principiantes del Comando Docker Run

DockerBeginner
Practicar Ahora

Introducción

En esta guía completa, exploraremos el comando esencial docker run, que es la base para administrar y ejecutar contenedores Docker. Ya seas nuevo en Docker o busques profundizar tu comprensión, este tutorial te proporcionará los conocimientos y habilidades necesarios para utilizar eficazmente el comando docker run y aprovechar todo el potencial de los contenedores Docker.

Introducción a los Contenedores Docker

Docker es una plataforma de contenedorización popular que permite a los desarrolladores empaquetar sus aplicaciones y dependencias en unidades autocontenidas llamadas contenedores. Estos contenedores se pueden desplegar, escalar y gestionar fácilmente en diferentes entornos, garantizando un comportamiento de aplicación consistente y fiable.

¿Qué son los Contenedores Docker?

Los contenedores Docker son paquetes de software ligeros, autónomos y ejecutables que incluyen todo lo necesario para ejecutar una aplicación, incluyendo el código, el tiempo de ejecución, las herramientas del sistema y las bibliotecas. Los contenedores aíslan las aplicaciones del sistema host subyacente, proporcionando un entorno consistente y predecible para que la aplicación se ejecute.

Beneficios de los Contenedores Docker

  • Portabilidad: Los contenedores Docker se pueden mover fácilmente entre diferentes entornos informáticos, garantizando un comportamiento de aplicación consistente.
  • Escalabilidad: Los contenedores se pueden escalar rápidamente hacia arriba o hacia abajo para satisfacer las demandas cambiantes de la aplicación.
  • Eficiencia: Los contenedores comparten el sistema operativo del host, reduciendo la sobrecarga en comparación con las máquinas virtuales tradicionales.
  • Consistencia: Los contenedores garantizan que las aplicaciones se ejecuten de la misma manera, independientemente de la infraestructura subyacente.

Arquitectura de Docker

Docker utiliza una arquitectura cliente-servidor, donde el cliente Docker se comunica con el demonio Docker, que es responsable de construir, ejecutar y gestionar los contenedores Docker.

graph LR A[Cliente Docker] -- API --> B[Demonio Docker] B -- Contenedores --> C[Imágenes Docker] B -- Volúmenes --> D[Volúmenes Docker] B -- Redes --> E[Redes Docker]

Primeros pasos con Docker

Para empezar con Docker, necesitarás instalar el motor Docker en tu sistema. Puedes descargar e instalar Docker desde el sitio web oficial de Docker (https://www.docker.com/get-started). Una vez instalado, puedes usar la interfaz de línea de comandos docker para interactuar con el demonio Docker y gestionar tus contenedores.

Primeros Pasos con el Comando Docker Run

El comando docker run es la forma principal de iniciar y gestionar contenedores en Docker. Este comando te permite crear y ejecutar un nuevo contenedor a partir de una imagen Docker.

Comando Básico Docker Run

La sintaxis básica del comando docker run es:

docker run [OPCIONES] IMAGEN [COMANDO] [ARG...]

Aquí hay un ejemplo de cómo ejecutar un contenedor de servidor web Nginx simple:

docker run -d -p 80:80 --name my-nginx nginx:latest

Este comando:

  • -d: ejecuta el contenedor en modo desacoplado (en segundo plano)
  • -p 80:80: mapea el puerto 80 del host al puerto 80 del contenedor
  • --name my-nginx: asigna el nombre "my-nginx" al contenedor
  • nginx:latest: especifica la imagen Docker a usar (la versión más reciente de Nginx)

Explorando el Contenedor en Ejecución

Después de ejecutar el contenedor, puedes usar los siguientes comandos para interactuar con él:

  • docker ps: lista todos los contenedores en ejecución
  • docker logs my-nginx: muestra los registros del contenedor "my-nginx"
  • docker exec -it my-nginx bash: abre un shell bash dentro del contenedor "my-nginx" en ejecución

Deteniendo y Eliminando Contenedores

Para detener un contenedor en ejecución, utiliza el comando docker stop:

docker stop my-nginx

Para eliminar un contenedor detenido, utiliza el comando docker rm:

docker rm my-nginx

Al comprender el comando básico docker run y cómo gestionar los contenedores, puedes empezar a construir y desplegar tus propias aplicaciones usando Docker.

Comandos Avanzados de Docker Run

Si bien el comando básico docker run es suficiente para muchos casos de uso, Docker proporciona una amplia gama de opciones para personalizar y ajustar el comportamiento de tus contenedores. A continuación, se presentan algunos comandos avanzados de docker run y sus casos de uso.

Variables de Entorno

Puedes pasar variables de entorno a un contenedor utilizando la bandera -e o --env. Esto es útil para configurar la configuración de la aplicación o conectarse a servicios externos.

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mypassword mysql:latest

Montaje de Volúmenes

Los volúmenes te permiten persistir datos fuera del sistema de archivos del contenedor. Esto es particularmente importante para aplicaciones con estado que necesitan conservar los datos entre reinicios del contenedor.

docker run -d -p 80:80 -v /path/on/host:/var/www/html nginx:latest

Redes

Puedes conectar contenedores a redes personalizadas utilizando la bandera --network. Esto permite que los contenedores se comuniquen entre sí de forma segura y eficiente.

docker network create my-network
docker run -d --network my-network --name db mysql:latest
docker run -d --network my-network --name web nginx:latest

Restricciones de Recursos

Puedes limitar los recursos (CPU, memoria, etc.) disponibles para un contenedor utilizando varias banderas, como --cpus, --memory y --memory-swap.

docker run -d --cpus=2 --memory=4g nginx:latest

Comprobaciones de Salud

La bandera --health-cmd te permite especificar un comando para comprobar el estado de un contenedor en ejecución. Esto es útil para controlar el estado de tus aplicaciones.

docker run -d --health-cmd="curl -f http://localhost || exit 1" nginx:latest

Al comprender estos comandos avanzados de docker run, puedes crear aplicaciones Docker más complejas y sofisticadas que satisfagan tus requisitos específicos.

Resumen

Al finalizar esta guía, tendrás una comprensión sólida del comando docker run y sus características avanzadas. Podrás crear, gestionar y personalizar contenedores Docker con confianza para satisfacer tus necesidades específicas. Sumérgete y desbloquea el poder del comando docker run para optimizar tus flujos de trabajo de desarrollo y despliegue.