
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
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:
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:
docker images
Listar contenedores en ejecución:
docker ps
Listar contenedores (incluyendo detenidos):
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í:
# 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:
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:
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):
docker stop <container_id>
Eliminar un contenedor
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:
docker volume create mi-volumen
Montarlo en un contenedor:
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