Introducción a Docker: Aprende a contenerizar tus aplicaciones paso a paso

Tabla de contenidos

Tabla de contenidos

El desarrollo moderno de software ha evolucionado hacia entornos más ágiles, portables y reproducibles. En este contexto, Docker se ha consolidado como una de las herramientas fundamentales para contenerizar aplicaciones, facilitando su despliegue y ejecución en cualquier entorno sin conflictos de dependencias.

A través de esta guía, aprenderás paso a paso cómo usar Docker para contenerizar tus proyectos, ejecutar contenedores, trabajar con imágenes personalizadas y gestionar entornos de desarrollo y producción de forma eficiente. No necesitas conocimientos previos avanzados: este recorrido está pensado para acompañarte desde los conceptos básicos hasta las prácticas más comunes del día a día con Docker.

Ya sea que quieras mejorar tus flujos de trabajo, preparar tu aplicación para un entorno de producción o simplemente explorar cómo funciona la tecnología que impulsa buena parte de la infraestructura actual en la nube, esta guía es para ti.

Qué es Docker y por qué se ha vuelto tan popular

Docker es una plataforma de código abierto que permite empaquetar aplicaciones y todas sus dependencias en contenedores ligeros, portables y consistentes. Estos contenedores pueden ejecutarse en cualquier sistema que tenga el motor de Docker instalado, sin importar el sistema operativo subyacente ni la configuración del host.

A diferencia de las máquinas virtuales tradicionales, Docker no necesita un sistema operativo completo por cada instancia. En lugar de eso, utiliza el kernel del sistema operativo anfitrión y aísla procesos en entornos separados, lo que reduce significativamente el consumo de recursos y acelera los tiempos de ejecución.

Entre las razones que explican su popularidad:

  • Portabilidad: puedes desarrollar en tu equipo, probar en staging y desplegar en producción con la misma imagen.
  • Rapidez: los contenedores se crean y se destruyen en segundos.
  • Aislamiento: cada aplicación funciona en su propio entorno, evitando conflictos entre dependencias o librerías.
  • Escalabilidad: se integra fácilmente con sistemas de orquestación como Kubernetes para escalar aplicaciones automáticamente.
  • Integración continua: Docker se adapta muy bien a flujos DevOps modernos y herramientas como Jenkins, GitHub Actions o GitLab CI/CD.

Docker ha redefinido el desarrollo multiplataforma, eliminando el clásico “en mi máquina funciona”.

Instalación y primeros pasos con Docker

Para comenzar a usar Docker en tu entorno local, lo primero es instalar el motor de Docker (Docker Engine) en tu sistema operativo. Docker está disponible para Windows, macOS y distribuciones Linux como Ubuntu, Fedora o Debian.

Aunque puedes encontrar paquetes específicos para cada sistema, la forma más sencilla de empezar es a través de Docker Desktop, que incluye tanto Docker Engine como herramientas gráficas y de línea de comandos útiles para gestionar contenedores.

Instalación básica según tu sistema operativo

  • Windows y macOS: descarga Docker Desktop desde el sitio oficial. La instalación es asistida, pero es necesario habilitar la virtualización en BIOS/UEFI.
  • Linux (Ubuntu): puedes instalar Docker desde los repositorios oficiales con unos pocos comandos.

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Una vez instalado, puedes comprobar que Docker está funcionando ejecutando:

docker –version

Esto debería devolver la versión instalada del motor de Docker y confirmar que está operativo.

Primer contenedor: el clásico “Hello World”

Para verificar que todo funciona correctamente, puedes ejecutar tu primer contenedor con:

docker run hello-world

Docker descargará automáticamente una imagen de prueba, la ejecutará y mostrará un mensaje de bienvenida. Si ves el mensaje en consola, significa que tu entorno está listo para contenerizar aplicaciones.

Conceptos clave: imágenes, contenedores y Dockerfile

Para trabajar eficazmente con Docker, es fundamental comprender sus tres pilares básicos: imágenes, contenedores y el archivo Dockerfile. Estos conceptos forman la base sobre la que se construyen y despliegan las aplicaciones contenerizadas.

Una imagen de Docker es un paquete inmutable que contiene todo lo necesario para ejecutar una aplicación: código fuente, dependencias, librerías y configuraciones del sistema. Las imágenes son la plantilla a partir de la cual se crean los contenedores.

Un contenedor es una instancia en ejecución de una imagen. Es un entorno aislado que ejecuta una aplicación o proceso tal como fue definido en la imagen. Puedes tener múltiples contenedores corriendo desde una misma imagen, cada uno funcionando de forma independiente.

Por último, el Dockerfile es un archivo de texto que define cómo se construye una imagen. En él se especifican las instrucciones necesarias para crear el entorno deseado, como qué base utilizar, qué dependencias instalar y qué comandos ejecutar durante la construcción de la imagen.

Ciclo básico de trabajo con Docker

El flujo de trabajo habitual con Docker implica los siguientes pasos:

  • Escribir un Dockerfile que describa tu aplicación y su entorno.
  • Construir una imagen con docker build a partir de ese Dockerfile.
  • Crear y ejecutar contenedores desde esa imagen con docker run.
  • Administrar contenedores e imágenes con comandos como docker psdocker stopdocker rmdocker rmi.

Estos conceptos te permitirán comenzar a contenerizar tus propias aplicaciones y desplegarlas de forma eficiente y portátil.

Instalación de Docker en tu sistema

Antes de comenzar a trabajar con contenedores, es necesario instalar Docker en tu sistema. El proceso es relativamente sencillo y está bien documentado para los principales sistemas operativos. A continuación se indican los pasos generales para cada plataforma, aunque se recomienda seguir siempre la guía oficial más actualizada.

Instalación en Windows y macOS

Docker se instala en sistemas Windows y macOS a través de Docker Desktop, una solución todo en uno que incluye el motor de Docker, Docker CLI y una interfaz gráfica útil para desarrolladores.

Para comenzar:

  • Accede a Docker Desktop y descarga la versión correspondiente a tu sistema operativo.
  • Ejecuta el instalador y sigue los pasos del asistente.
  • Tras la instalación, Docker se ejecutará automáticamente y estará disponible desde tu terminal.

Puedes comprobar que la instalación fue exitosa verificando la versión instalada:

docker –version

También puedes ejecutar un contenedor de prueba para asegurarte de que todo funciona correctamente:

docker run hello-world

Instalación en Linux

En sistemas Linux, Docker se instala utilizando el gestor de paquetes de la distribución correspondiente. A continuación, se muestra un ejemplo para distribuciones basadas en Debian/Ubuntu.

Pasos recomendados:

  • Abre una terminal y actualiza los paquetes del sistema.
  • Instala el paquete docker.io, que incluye el motor de Docker.
  • Habilita y arranca el servicio de Docker.
  • Añade tu usuario al grupo docker para evitar el uso de sudo en cada comando.

sudo apt update
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

Después de la instalación, verifica que Docker esté funcionando correctamente:

docker run hello-world

Esto ejecutará una imagen de prueba que imprimirá un mensaje de bienvenida si todo está correctamente configurado.

Tu primer contenedor con Docker

Una vez que Docker está instalado correctamente, el siguiente paso es lanzar tu primer contenedor. Esto te permitirá verificar que la instalación funciona y empezar a familiarizarte con los comandos básicos.

Ejecutar un contenedor de prueba

Docker permite ejecutar contenedores a partir de imágenes preconfiguradas disponibles en Docker Hub, el repositorio oficial de imágenes. Para realizar una prueba inicial, puedes usar la imagen hello-world:

docker run hello-world

Este comando descarga la imagen hello-world (si aún no está en tu sistema) y ejecuta un contenedor que muestra un mensaje de bienvenida. Es una forma sencilla y rápida de confirmar que Docker está operativo en tu entorno.

Ver y gestionar los contenedores

Después de ejecutar el contenedor de prueba, puedes consultar la lista de contenedores activos y finalizados usando:

docker ps -a

Este comando muestra todos los contenedores, tanto los que están en ejecución como los que ya se han detenido. Si deseas liberar espacio eliminando los contenedores detenidos, puedes hacerlo con:

docker container prune

Este comando elimina todos los contenedores detenidos, lo que ayuda a mantener limpio tu entorno de trabajo.

Configurar el entorno de desarrollo para Docker

Configurar el entorno de desarrollo para Docker

Antes de comenzar a trabajar con Docker, es fundamental preparar correctamente el entorno de desarrollo. Esto implica instalar Docker en tu sistema operativo, verificar que todo funcione correctamente y familiarizarte con las herramientas básicas incluidas. A continuación te guiamos paso a paso para dejarlo todo listo.

Instalar Docker en tu sistema operativo

Docker ofrece instaladores para Windows, macOS y varias distribuciones de Linux. Para una experiencia completa, se recomienda instalar Docker Desktop, que incluye tanto el motor de Docker como una interfaz gráfica y otras herramientas útiles como Docker Compose.

Ve a la web oficial de Docker Desktop y descarga la versión correspondiente a tu sistema operativo.

Tras completar la instalación, abre una terminal o consola de comandos y ejecuta una instrucción básica para asegurarte de que Docker se encuentra disponible:

# Verificar que Docker está funcionando
docker –version

Si todo está bien configurado, verás un mensaje de bienvenida de Docker confirmando que está funcionando.

Verificar versión y configuración básica

Una vez instalado Docker, conviene verificar la versión instalada y revisar algunos parámetros básicos. Esto no solo te asegurará que la instalación fue correcta, sino que también te servirá para comprobar compatibilidad con otras herramientas o proyectos futuros.

# Ver la versión instalada
docker version

También puedes consultar información del sistema con:

# Consultar configuración del sistema
docker info

Con estas comprobaciones iniciales completas, ya estarás listo para comenzar a contenerizar tus primeras aplicaciones.

Crear tu primer contenedor con Docker

Ahora que tienes Docker instalado, es momento de ejecutar tu primer contenedor. Un contenedor es una instancia aislada de una imagen que contiene todo lo necesario para ejecutar una aplicación. Para este ejemplo, utilizaremos una imagen oficial de prueba que te permitirá ver Docker en acción rápidamente.

Ejecutar un contenedor desde una imagen

Vamos a usar la imagen hello-world, que está diseñada específicamente para probar que Docker funciona correctamente. Abre la terminal y ejecuta el siguiente comando:

# Ejecutar imagen hello-world
docker run hello-world

Docker buscará la imagen localmente y, si no la encuentra, la descargará desde Docker Hub. Luego ejecutará el contenedor y te mostrará un mensaje de confirmación en pantalla.

Listar los contenedores creados

Después de ejecutar una imagen, puedes comprobar los contenedores que se han creado (aunque ya estén detenidos) con este comando:

# Ver lista de contenedores (incluso detenidos)
docker ps -a

Este listado te mostrará el ID del contenedor, su estado, nombre y otra información útil.

Eliminar un contenedor

Si quieres eliminar un contenedor que ya no necesitas, puedes hacerlo con el siguiente comando, reemplazando ID_DEL_CONTENEDOR por el ID correspondiente:

# Eliminar un contenedor por ID
docker rm ID_DEL_CONTENEDOR

Buscar e instalar imágenes desde Docker Hub

Docker Hub es el repositorio oficial de imágenes Docker, donde puedes encontrar aplicaciones listas para usar. Desde allí puedes buscar imágenes de bases de datos, lenguajes de programación, herramientas de desarrollo, y mucho más.

Buscar imágenes disponibles

Para buscar una imagen desde la terminal, puedes usar el comando docker search seguido del nombre de la imagen que te interesa. Por ejemplo, para buscar imágenes relacionadas con Node.js:

docker search node

Esto mostrará un listado con el nombre, descripción y número de descargas de las imágenes disponibles.

Descargar una imagen

Una vez localizada una imagen que quieres usar, puedes descargarla a tu sistema local con el comando docker pull. Por ejemplo:

docker pull node

Esto descargará la última versión disponible de esa imagen en tu equipo, lista para ejecutarse.

Ejecutar contenedores desde una imagen

Una vez descargada una imagen, puedes crear y ejecutar un contenedor basado en ella usando el comando docker run. Este comando crea una instancia activa de la imagen, es decir, un contenedor que se ejecuta de forma aislada con todos los recursos definidos en dicha imagen.

Ejecutar un contenedor interactivo

Para iniciar un contenedor en modo interactivo (por ejemplo, acceder a una terminal de bash dentro del contenedor), puedes usar el siguiente comando:

docker run -it ubuntu bash

Esto abrirá una terminal dentro del contenedor ubuntu y te permitirá ejecutar comandos como si estuvieras dentro de un sistema operativo separado.

Ejecutar un contenedor en segundo plano

Si no necesitas una terminal interactiva, puedes ejecutar el contenedor en segundo plano (modo detached) usando el flag -d:

docker run -d nginx

Esto iniciará el contenedor con nginx y lo dejará ejecutándose en segundo plano.

Gestionar contenedores activos

Una vez que tienes contenedores en ejecución, es fundamental poder gestionarlos: ver cuáles están activos, detenerlos, reiniciarlos o eliminarlos. Docker proporciona varios comandos para estas tareas básicas de administración.

Listar contenedores en ejecución

Para ver los contenedores que están actualmente activos en tu sistema, puedes usar:

docker ps

Si quieres ver todos los contenedores (incluidos los detenidos), añade el flag -a:

docker ps -a

Detener y eliminar contenedores

Para detener un contenedor en ejecución necesitas su ID o nombre. Luego puedes eliminarlo si lo deseas.

docker stop nombre_o_id && docker rm nombre_o_id

Esto detiene el contenedor indicado y lo elimina posteriormente.

También puedes eliminar todos los contenedores detenidos con un solo comando:

docker container prune

Crear imágenes personalizadas con Dockerfile

Uno de los aspectos más potentes de Docker es la posibilidad de crear imágenes adaptadas a tus propias necesidades. Para ello se utiliza un archivo llamado Dockerfile, que define paso a paso cómo construir dicha imagen a partir de una base oficial y tus propios requisitos.

Qué es un Dockerfile

Un Dockerfile es un archivo de texto plano que define una imagen personalizada a partir de otra existente (por ejemplo, pythonnode, etc.) e incluye todos los pasos necesarios para configurar el entorno de tu aplicación: instalación de dependencias, copiado de archivos, comandos de arranque, etc.

A continuación se muestra un ejemplo básico de Dockerfile:

# Dockerfile básico para una app Python
FROM python:3.11-slim
<

Compartir en:

Artículos relacionados

adivinar loteria con chatgpt

Número de lotería con ChatGPT

Son varias las noticias que se han dado a conocer acerca de cual fue el número de la lotería de ChatGPT, que esta inteligencia artificial predijo como ganador del sorteo de la Lotería de Navidad del año 2023, así como otros casos en los

Cómo afecta la inteligencia artificial al ser humano

Son diversas las maneras cómo afecta la inteligencia artificial al ser humano, puesto que es una de las tecnologías que tiene más oportunidades de crecimiento en la actualidad, de forma que, todas aquellas empresas y negocios que desean tener un verdadero proceso de

Sophia Robot: el humanoide que transformará el futuro

La robótica ha evolucionado a pasos agigantados en los últimos años, y uno de los desarrollos más llamativos y populares es el robot Sophia, un humanoide creado por Hanson Robotics.  De este modo, Sophia no es tan solo otro robot más; esta ha

¿Cuál es la competencia de ChatGPT?

Existen diversas alternativas de la competencia de ChatGPT que ofrecen funcionalidades similares a esta inteligencia artificial desarrollada por OpenAI. De esta manera, estas herramientas no sólo compiten en términos de capacidad de procesamiento de lenguaje, sino también en aspectos como facilidad de uso,

Scroll al inicio