
En el mundo del desarrollo de software, Docker se ha convertido en una herramienta imprescindible para empaquetar y desplegar aplicaciones de forma rápida y confiable. Gracias a los contenedores, desarrolladores y equipos de DevOps pueden asegurarse de que su software funcione de la misma manera en cualquier entorno, ya sea en la computadora local, en un servidor dedicado o en la nube.
En este artículo aprenderás qué es Docker, por qué los contenedores son tan útiles y cómo comenzar a usarlo para tus propios proyectos.
¿Qué es Docker?
Docker es una plataforma que permite crear, ejecutar y compartir aplicaciones dentro de contenedores. Un contenedor es como un “paquete” ligero que incluye todo lo necesario para que tu aplicación funcione: bibliotecas, dependencias y archivos de configuración.
Ventajas de los contenedores:
- Portabilidad: Un contenedor puede correr en cualquier lugar donde esté instalado Docker, sin importar el sistema operativo o la infraestructura subyacente.
- Eficiencia: A diferencia de las máquinas virtuales tradicionales, los contenedores comparten el núcleo (kernel) del sistema operativo, lo que reduce el uso de recursos.
- Aislamiento: Cada contenedor está aislado, por lo que un fallo o conflicto en una aplicación no afecta a las demás.
Instalación de Docker
En Ubuntu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # Añade la clave GPG oficial de Docker curl -fsSL https: //download .docker.com /linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring .gpg # Añade el repositorio estable echo \ "deb [arch=$(dpkg --print-architecture) signed-by= /usr/share/keyrings/docker-archive-keyring .gpg] \ https: //download .docker.com /linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources .list.d /docker .list > /dev/null # Instala Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io |
En Windows o macOS
- Descarga Docker Desktop desde la página oficial de Docker.
- Sigue el asistente de instalación y, una vez terminado, podrás usar Docker desde la terminal (o Powershell) y también desde la interfaz gráfica de Docker Desktop.
Creando tu Primer Contenedor
“Hola Mundo” con Docker
Para probar que Docker funciona correctamente, ejecuta:
1 | docker run hello-world |
Este comando:
- Descarga la imagen “hello-world” desde Docker Hub (si no la tienes localmente).
- Crea y arranca un contenedor que imprime un mensaje de bienvenida.
- Finaliza la ejecución.
Listar Imágenes y Contenedores
Listar imágenes en local:
1 | docker images |
Listar contenedores en ejecución:
1 | docker ps |
Listar contenedores (incluyendo detenidos):
1 | docker ps -a |
Crear tu Propia Imagen con Dockerfile
Para empaquetar una aplicación con Docker, se utiliza un Dockerfile, un archivo de texto que describe paso a paso cómo construir la imagen. Por ejemplo, si tienes una aplicación en Python, podrías crear un Dockerfile
así:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # Seleccionamos la imagen base FROM python : 3.9-slim # Configuramos el directorio de trabajo WORKDIR /app # Copiamos el archivo de requerimientos y lo instalamos COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copiamos el resto de archivos de la aplicación COPY . . # Exponemos el puerto EXPOSE 8000 # Comando de inicio (ajusta según tu app) CMD [ "python" , "main.py" ] |
Para construir la imagen:
1 | docker build -t mi-aplicacion:1.0 . |
Aquí, -t mi-aplicacion:1.0
es el nombre y la etiqueta (tag) que asignamos a la imagen. El .
indica que buscamos el Dockerfile en la carpeta actual.
Para correr tu contenedor:
1 | docker run -d -p 8000:8000 mi-aplicacion:1.0 |
-d
ejecuta el contenedor en segundo plano (modo detach).-p 8000:8000
mapea el puerto 8000 del contenedor al puerto 8000 del host.
Manejo de Contenedores y Volúmenes
Detener y Eliminar Contenedores
Detener un contenedor (usando su ID o nombre):
1 | docker stop <container_id> |
Eliminar un contenedor
1 | docker rm <container_id> |
Volúmenes
Los volúmenes permiten persistir datos fuera del contenedor. Así, si el contenedor se elimina, los datos permanecen. Crear un volumen:
1 | docker volume create mi-volumen |
Montarlo en un contenedor:
1 | docker run -d -p 8000:8000 - v mi-volumen: /app/data mi-aplicacion:1.0 |
Esto hace que la carpeta /app/data
use el volumen “mi-volumen” y mantenga los datos incluso si el contenedor se detiene.
Buenas Prácticas
- Usa imágenes base ligeras: reduce el tamaño final de tu imagen y acelera la descarga.
- Mantén tu Dockerfile ordenado y añade comentarios para explicar cada instrucción.
- No guardes secretos (contraseñas, tokens) directamente en el Dockerfile. Utiliza variables de entorno y/o un gestor de secretos.
- Etiquetas y versionado: etiqueta tus imágenes (
mi-aplicacion:1.0
) para identificar rápidamente su versión o estado.
Despliegue en Producción
Para entornos productivos, Docker facilita la orquestación con herramientas como Docker Compose o Kubernetes. Esto permite:
- Gestionar múltiples contenedores (frontend, backend, base de datos).
- Escalar tu aplicación de forma horizontal agregando réplicas de contenedores.
- Realizar balanceo de carga automático y despliegues continuos.
Docker revolucionó la forma en que desarrollamos y desplegamos software. Gracias a los contenedores, el mantra “funciona en mi máquina” realmente puede extenderse a cualquier servidor o cloud provider.
Con solo un Dockerfile y un par de comandos, puedes aislar tu aplicación, empaquetar sus dependencias y asegurar que siempre se ejecute de manera idéntica. En este artículo conociste los fundamentos básicos y un ejemplo de cómo crear tu propia imagen. Te invitamos a experimentar y probar diferentes escenarios — desde el desarrollo local hasta despliegues complejos en la nube.
Si tienes dudas o sugerencias, ¡déjalas en los comentarios y continuemos aprendiendo juntos en la Comunidad Capo Digital!
No Comments