Volver a la página principal
lunes 22 julio 2024
39

Cómo correr un contenedor en Docker

¿Qué es un Contenedor Docker?

Un contenedor Docker es una unidad estandarizada de software que empaqueta el código, las bibliotecas y las dependencias necesarias para ejecutar una aplicación de manera consistente en diferentes entornos. Los contenedores se basan en imágenes Docker, que son archivos que contienen todo lo necesario para ejecutar una aplicación.

Pasos para Correr un Contenedor en Docker

1. Instalar Docker

Antes de poder correr un contenedor, debes tener Docker instalado en tu sistema. Puedes descargar Docker desde el sitio web oficial de Docker y seguir las instrucciones para tu sistema operativo.

2. Buscar una Imagen Docker

Docker utiliza imágenes para crear contenedores. Puedes buscar imágenes en Docker Hub, el registro de imágenes más popular. Por ejemplo, para buscar la imagen oficial de Nginx, puedes usar:

docker search nginx

3. Descargar una Imagen Docker

Para descargar una imagen desde Docker Hub, usa el comando docker pull. Por ejemplo, para descargar la imagen oficial de Nginx:

docker pull nginx

Este comando descarga la imagen más reciente de Nginx disponible en Docker Hub.

4. Correr un Contenedor

Una vez que hayas descargado la imagen, puedes crear y ejecutar un contenedor con el comando docker run. Aquí hay un ejemplo básico para correr un contenedor de Nginx:

docker run -d --name mi_nginx -p 8080:80 nginx

Desglosando el comando:

  • docker run: Comando para crear y ejecutar un contenedor.
  • -d: Ejecuta el contenedor en modo desprendido (detached mode), lo que significa que se ejecuta en segundo plano.
  • --name mi_nginx: Asigna un nombre al contenedor (en este caso, mi_nginx).
  • -p 8080:80: Mapea el puerto 80 del contenedor al puerto 8080 del host, permitiendo que accedas a Nginx desde el navegador en http://localhost:8080.
  • nginx: El nombre de la imagen que se está utilizando para crear el contenedor.

5. Verificar que el Contenedor Está Corriendo

Para verificar que el contenedor se está ejecutando correctamente, usa el comando docker ps:

docker ps

Este comando muestra una lista de todos los contenedores en ejecución, incluyendo el nombre del contenedor, la imagen que está usando, y los puertos mapeados.

6. Acceder a la Consola del Contenedor

Si necesitas acceder a la consola del contenedor para realizar tareas adicionales, puedes usar el comando docker exec. Por ejemplo, para acceder a una terminal interactiva en un contenedor en ejecución:

docker exec -it mi_nginx /bin/bash

Aquí:

  • docker exec: Ejecuta un comando en un contenedor en ejecución.
  • -it: Habilita la interacción y la terminal.
  • mi_nginx: El nombre del contenedor.
  • /bin/bash: El comando a ejecutar (en este caso, abre una terminal Bash).

7. Detener y Eliminar un Contenedor

Cuando ya no necesites el contenedor, puedes detenerlo con el comando docker stop y eliminarlo con docker rm:

docker stop mi_nginx
docker rm mi_nginx

8. Ejecutar un Contenedor con Opciones Adicionales

Docker ofrece una variedad de opciones para personalizar el comportamiento de los contenedores. Algunas opciones comunes incluyen:

  • --env: Configura variables de entorno dentro del contenedor.
docker run -d --name mi_app -e "ENV_VAR=value" my_image
  • --volume (o -v): Monta volúmenes para persistir datos o compartir archivos entre el host y el contenedor.
docker run -d --name mi_app -v /ruta/en/host:/ruta/en/contenedor my_image
  • --network: Conecta el contenedor a una red específica.
docker run -d --name mi_app --network mi_red my_image
  • --restart: Configura políticas de reinicio para el contenedor.
docker run -d --name mi_app --restart unless-stopped my_image

9. Limpiar Recursos No Usados

Con el tiempo, puedes acumular contenedores detenidos, imágenes sin usar y volúmenes huérfanos. Para limpiar estos recursos, usa el comando:

docker system prune

Este comando eliminará contenedores detenidos, imágenes no usadas y volúmenes que no están asociados con ningún contenedor.

Etiquetas:
docker
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer