En esta sección, aprenderás cómo ejecutar contenedores Docker, uno de los aspectos más fundamentales y prácticos de trabajar con Docker. Veremos los comandos básicos necesarios para iniciar, detener y gestionar contenedores, así como algunos ejemplos prácticos para que puedas seguirlos paso a paso.
Conceptos Clave
Antes de comenzar con los comandos, es importante entender algunos conceptos clave:
- Contenedor: Un contenedor es una instancia en ejecución de una imagen Docker. Es un entorno aislado que contiene todo lo necesario para ejecutar una aplicación.
- Imagen: Una imagen es una plantilla de solo lectura que define lo que se ejecutará dentro del contenedor. Las imágenes se almacenan en repositorios como Docker Hub.
- Docker Daemon: Es el servicio que se ejecuta en segundo plano y gestiona los contenedores.
Comandos Básicos para Ejecutar Contenedores
docker run
docker run
El comando docker run
es el más utilizado para iniciar un contenedor. Aquí tienes la sintaxis básica:
Ejemplo Práctico
Vamos a ejecutar un contenedor simple utilizando la imagen hello-world
:
Explicación:
docker run
: Inicia un nuevo contenedor.hello-world
: Especifica la imagen que se utilizará para crear el contenedor.
Cuando ejecutas este comando, Docker descarga la imagen hello-world
(si no está ya en tu máquina) y luego crea y ejecuta un contenedor basado en esa imagen. Verás un mensaje de bienvenida que confirma que Docker está funcionando correctamente.
docker ps
docker ps
El comando docker ps
se utiliza para listar los contenedores en ejecución.
Ejemplo Práctico
Explicación:
docker ps
: Muestra una lista de todos los contenedores en ejecución.
Para ver todos los contenedores, incluidos los que están detenidos, puedes usar la opción -a
:
docker start
y docker stop
docker start
y docker stop
Estos comandos se utilizan para iniciar y detener contenedores que ya han sido creados.
Ejemplo Práctico
Primero, crearemos un contenedor en modo detenido:
Luego, podemos iniciarlo y detenerlo con los siguientes comandos:
Explicación:
docker create --name mi_contenedor hello-world
: Crea un contenedor llamadomi_contenedor
basado en la imagenhello-world
.docker start mi_contenedor
: Inicia el contenedormi_contenedor
.docker stop mi_contenedor
: Detiene el contenedormi_contenedor
.
docker rm
docker rm
El comando docker rm
se utiliza para eliminar contenedores.
Ejemplo Práctico
Explicación:
docker rm mi_contenedor
: Elimina el contenedormi_contenedor
.
Ejercicio Práctico
Ejercicio 1: Ejecutar un Contenedor de Nginx
-
Ejecuta un contenedor de Nginx:
docker run --name mi_nginx -d -p 8080:80 nginx
-
Verifica que el contenedor está en ejecución:
docker ps
-
Accede a Nginx en tu navegador:
- Abre tu navegador y ve a
http://localhost:8080
. Deberías ver la página de bienvenida de Nginx.
- Abre tu navegador y ve a
-
Detén el contenedor:
docker stop mi_nginx
-
Elimina el contenedor:
docker rm mi_nginx
Solución
-
Ejecuta el contenedor de Nginx:
docker run --name mi_nginx -d -p 8080:80 nginx
-
Verifica que el contenedor está en ejecución:
docker ps
-
Accede a Nginx en tu navegador:
- Abre tu navegador y ve a
http://localhost:8080
.
- Abre tu navegador y ve a
-
Detén el contenedor:
docker stop mi_nginx
-
Elimina el contenedor:
docker rm mi_nginx
Resumen
En esta sección, hemos cubierto los comandos básicos para ejecutar y gestionar contenedores Docker. Ahora deberías ser capaz de:
- Ejecutar un contenedor utilizando
docker run
. - Listar contenedores en ejecución con
docker ps
. - Iniciar y detener contenedores con
docker start
ydocker stop
. - Eliminar contenedores con
docker rm
.
Estos comandos son fundamentales para trabajar con Docker y te preparan para explorar conceptos más avanzados en los siguientes módulos.
Docker: De Principiante a Avanzado
Módulo 1: Introducción a Docker
- ¿Qué es Docker?
- Instalando Docker
- Arquitectura de Docker
- Comandos Básicos de Docker
- Entendiendo las Imágenes de Docker
- Creando tu Primer Contenedor Docker
Módulo 2: Trabajando con Imágenes Docker
- Docker Hub y Repositorios
- Construyendo Imágenes Docker
- Conceptos Básicos de Dockerfile
- Gestionando Imágenes Docker
- Etiquetado y Publicación de Imágenes
Módulo 3: Contenedores Docker
- Ejecutando Contenedores
- Ciclo de Vida del Contenedor
- Gestionando Contenedores
- Redes en Docker
- Persistencia de Datos con Volúmenes
Módulo 4: Docker Compose
- Introducción a Docker Compose
- Definiendo Servicios en Docker Compose
- Comandos de Docker Compose
- Aplicaciones Multi-Contenedor
- Variables de Entorno en Docker Compose
Módulo 5: Conceptos Avanzados de Docker
- Profundización en Redes Docker
- Opciones de Almacenamiento Docker
- Mejores Prácticas de Seguridad en Docker
- Optimizando Imágenes Docker
- Registro y Monitoreo en Docker
Módulo 6: Docker en Producción
- CI/CD con Docker
- Orquestando Contenedores con Docker Swarm
- Introducción a Kubernetes
- Desplegando Contenedores Docker en Kubernetes
- Escalado y Balanceo de Carga