Guía de inicio rápido de Docker: Comienza a contenerizar tus aplicaciones

2/18/2026
7 min read
# Guía de inicio rápido de Docker: Comienza a contenerizar tus aplicaciones

Docker se ha convertido en una parte indispensable del desarrollo e implementación de software moderno. A pesar de la avalancha de discusiones en torno a Kubernetes, Docker sigue siendo la herramienta preferida por muchas empresas para construir, probar e implementar aplicaciones. Este artículo te guiará a través de una introducción rápida a Docker, comprenderás sus conceptos centrales y te proporcionará un ejemplo práctico para ayudarte a comenzar a contenerizar tus aplicaciones.

## Conceptos centrales de Docker

Antes de comenzar a practicar, es fundamental comprender algunos de los conceptos centrales de Docker:

*   **Imagen (Image):** Una imagen es una plantilla de solo lectura que contiene todo lo necesario para ejecutar una aplicación: código, entorno de tiempo de ejecución, herramientas del sistema, bibliotecas y dependencias. Similar a una imagen de máquina virtual, pero más ligera.

*   **Contenedor (Container):** Un contenedor es una instancia en ejecución creada a partir de una imagen. Es una instancia en tiempo de ejecución de una imagen, que contiene la aplicación y todas sus dependencias. Los contenedores están aislados entre sí y tienen su propio sistema de archivos, procesos y espacio de red.

*   **Docker Hub:** Docker Hub es un registro de imágenes público donde puedes descargar imágenes preconstruidas o cargar tus propias imágenes. Similar a GitHub, pero especializado en imágenes de Docker.

*   **Dockerfile:** Un Dockerfile es un archivo de texto que contiene todas las instrucciones para construir una imagen de Docker. Al escribir un Dockerfile, puedes automatizar el proceso de creación de imágenes.

*   **Docker Compose:** Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker de varios contenedores. Te permite usar un archivo YAML para configurar los servicios de la aplicación y luego usar un solo comando para iniciar o detener todos los servicios.

## Instalación de Docker

Primero, debes instalar Docker. Docker proporciona paquetes de instalación para varios sistemas operativos. Visita el [sitio web oficial de Docker](https://www.docker.com/get-started/) y sigue las instrucciones correspondientes para la instalación.

Una vez completada la instalación, puedes verificar si Docker está instalado correctamente ejecutando el comando `docker --version`.

## Contenerización de una aplicación Python simple

Crearemos una aplicación Python simple y la contenerizaremos usando Docker.

### 1. Crear la aplicación Python

Crea un archivo llamado `app.py` que contenga el siguiente código:

```python
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')

Esta sencilla aplicación Flask devolverá "Hello, Docker!" en la ruta raíz /.

2. Crear el archivo requirements.txt

La aplicación depende de la biblioteca Flask, necesitamos crear un archivo requirements.txt para declarar estas dependencias.

Flask

3. Crear el Dockerfile

Crea un archivo llamado Dockerfile y agrega el siguiente contenido:

# Usar la imagen oficial de Python como imagen base
FROM python:3.9-slim-buster

# Establecer el directorio de trabajo
WORKDIR /app

# Copiar el archivo requirements.txt al directorio de trabajo
COPY requirements.txt .

# Instalar las dependencias
RUN pip install --no-cache-dir -r requirements.txt
```# Copiar el código de la aplicación al directorio de trabajo
COPY app.py .

# Exponer el puerto 5000
EXPOSE 5000

# Definir el comando de inicio
CMD ["python", "app.py"]

Explicación del Dockerfile:

  • FROM python:3.9-slim-buster: Especifica la imagen base como una versión reducida de Python 3.9.
  • WORKDIR /app: Establece el directorio de trabajo dentro del contenedor como /app.
  • COPY requirements.txt .: Copia el archivo requirements.txt del directorio actual al directorio /app del contenedor.
  • RUN pip install --no-cache-dir -r requirements.txt: Ejecuta el comando pip dentro del contenedor para instalar las dependencias especificadas en el archivo requirements.txt. El parámetro --no-cache-dir puede reducir el tamaño de la imagen.
  • COPY app.py .: Copia el archivo app.py del directorio actual al directorio /app del contenedor.
  • EXPOSE 5000: Declara que el contenedor escuchará en el puerto 5000.
  • CMD ["python", "app.py"]: Define el comando que se ejecutará cuando se inicie el contenedor.

4. Construir la imagen de Docker

En el directorio que contiene el Dockerfile, ejecuta el siguiente comando para construir la imagen de Docker:

docker build -t my-python-app .
  • docker build: El comando para construir la imagen.
  • -t my-python-app: Asigna un nombre a la imagen (my-python-app).
  • .: Especifica el directorio donde se encuentra el Dockerfile (el directorio actual).

El proceso de construcción puede tardar un tiempo, dependiendo de la velocidad de la red y el tamaño de las dependencias.

5. Ejecutar el contenedor de Docker

Utiliza el siguiente comando para ejecutar el contenedor de Docker:

docker run -d -p 5000:5000 my-python-app
  • docker run: El comando para ejecutar el contenedor.
  • -d: Ejecuta el contenedor en modo detached (en segundo plano).
  • -p 5000:5000: Mapea el puerto 5000 del host al puerto 5000 del contenedor.
  • my-python-app: Especifica el nombre de la imagen a utilizar.

6. Verificar la aplicación

En un navegador, visita http://localhost:5000. Deberías ver "Hello, Docker!".

7. Detener y eliminar el contenedor

Utiliza el siguiente comando para detener el contenedor:

docker stop 

`` Puedes encontrar el mediante el comando docker ps.

Utiliza el siguiente comando para eliminar el contenedor:

docker rm 

Introducción a Docker Compose

Si tu aplicación está compuesta por múltiples servicios, puedes utilizar Docker Compose para gestionarlos.

1. Crear el archivo docker-compose.yml

Crea un archivo llamado docker-compose.yml y añade el siguiente contenido:

version: "3.9"
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"

Explicación de docker-compose.yml:* version: "3.9": Especifica la versión del archivo Docker Compose.

  • services: Define los servicios de la aplicación.
  • web: Define un servicio llamado "web".
  • image: my-python-app: Especifica la imagen que utiliza el servicio.
  • ports: Define el mapeo de puertos.

2. Iniciar la aplicación

En el directorio que contiene el archivo docker-compose.yml, ejecuta el siguiente comando para iniciar la aplicación:

docker-compose up -d
  • docker-compose up: Comando para iniciar la aplicación.
  • -d: Ejecuta el contenedor en modo detached (en segundo plano).

3. Detener la aplicación

Utiliza el siguiente comando para detener la aplicación:

docker-compose down

Mejores prácticas de seguridad de Docker

Como se puede ver en la discusión, la seguridad de las imágenes de Docker es un problema importante. A continuación, se presentan algunas de las mejores prácticas de seguridad de Docker:

  • Usar imágenes oficiales: Siempre que sea posible, utiliza las imágenes proporcionadas oficialmente, ya que estas imágenes generalmente se someten a escaneos de seguridad y mantenimiento.
  • Escanear vulnerabilidades en las imágenes: Utiliza herramientas como Trivy para escanear las imágenes en busca de vulnerabilidades conocidas y actualiza las imágenes de manera oportuna.
  • Usar el principio de mínimo privilegio: Evita ejecutar contenedores como usuario root.
  • Limitar los recursos del contenedor: Utiliza cgroups para limitar el uso de CPU y memoria del contenedor.
  • Actualizar las imágenes periódicamente: Mantén las imágenes actualizadas para corregir las vulnerabilidades de seguridad.
  • Usar herramientas de escaneo de seguridad: Herramientas como Snyk, Clair, etc., se pueden integrar en tu flujo de CI/CD para escanear automáticamente las vulnerabilidades de las imágenes.

ConclusiónEste artículo proporciona una guía de inicio rápido de Docker, que abarca los conceptos básicos, los pasos de instalación y un ejemplo sencillo de contenedorización de una aplicación Python. Al aprender estos fundamentos, puedes comenzar a usar Docker para construir, probar e implementar tus aplicaciones. Recuerda, la seguridad es primordial, siempre debes prestar atención a la seguridad de las imágenes de Docker y tomar las medidas adecuadas para proteger tus aplicaciones. Si bien Kubernetes es poderoso en la orquestación de contenedores a gran escala, Docker sigue siendo una solución simple y efectiva en muchos escenarios. Dominando Docker, estarás mejor equipado para enfrentar los desafíos del desarrollo e implementación de software moderno.

Published in Technology

You Might Also Like