Guía de inicio rápido de Docker: comience a contenerizar su aplicación rápidamente

2/18/2026
7 min read
# Guía de inicio rápido de Docker: comience a contenerizar su aplicación rápidamente Docker se ha convertido en una parte indispensable del desarrollo e implementación de software moderno. A pesar de la abrumadora cantidad de debates en torno a Kubernetes, Docker sigue siendo la herramienta preferida por muchas empresas para construir, probar e implementar aplicaciones. Este artículo lo guiará a través de los conceptos básicos de Docker, comprenderá sus conceptos centrales y le proporcionará un ejemplo práctico para ayudarlo a comenzar a contenerizar su aplicación. ## 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 liviana. * **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 desde donde puede descargar imágenes preconstruidas o cargar sus 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, puede 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. Le permite usar archivos 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, debe instalar Docker. Docker proporciona paquetes de instalación para varios sistemas operativos. Visite el [sitio web oficial de Docker](https://www.docker.com/get-started/) y siga las instrucciones correspondientes para instalarlo. Una vez completada la instalación, puede ejecutar el comando `docker --version` para verificar si Docker está instalado correctamente. ## Contenerización de una aplicación Python simple Crearemos una aplicación Python simple y la contenerizaremos usando Docker. ### 1. Crear una aplicación Python Cree 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 Cree un archivo llamado `Dockerfile` y agregue el siguiente contenido: ```dockerfile # 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: ```bash 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: ```bash docker run -d -p 5000:5000 my-python-app ``` * `docker run`: El comando para ejecutar el contenedor. * `-d`: Ejecuta el contenedor en modo separado (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 que se va 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: ```bash docker stop ``` `` Puedes ver el con el comando `docker ps`. Utiliza el siguiente comando para eliminar el contenedor: ```bash docker rm ``` ## Introducción a Docker Compose Si tu aplicación está compuesta por varios 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: ```yaml 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 la asignación 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: ```bash docker-compose up -d ``` * `docker-compose up`: El comando para iniciar la aplicación. * `-d`: Ejecuta el contenedor en modo detached (separado). ### 3. Detener la aplicación Utiliza el siguiente comando para detener la aplicación: ```bash 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. Estas son algunas de las mejores prácticas de seguridad de Docker: * **Utiliza imágenes oficiales:** Utiliza las imágenes proporcionadas oficialmente siempre que sea posible, ya que estas imágenes normalmente se escanean y mantienen para garantizar la seguridad. * **Escanea las imágenes en busca de vulnerabilidades:** Utiliza herramientas como Trivy para escanear las imágenes en busca de vulnerabilidades conocidas y actualiza las imágenes a tiempo. * **Utiliza el principio de mínimo privilegio:** Evita ejecutar contenedores como usuario root. * **Limita los recursos del contenedor:** Utiliza cgroups para limitar el uso de CPU y memoria del contenedor. * **Actualiza las imágenes periódicamente:** Mantén las imágenes actualizadas para corregir las vulnerabilidades de seguridad. * **Utiliza 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ón

Este artículo proporciona una guía de inicio rápido de Docker, que abarca los conceptos centrales, los pasos de instalación y un ejemplo simple de contenedorización de una aplicación Python. Al aprender estos conceptos básicos, 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