# Descripción general del taller de Docker


Este taller de 45 minutos contiene instrucciones paso a paso sobre cómo empezar con Docker. Este taller te muestra cómo:

- Compilar y ejecutar una imagen como un contenedor.
- Compartir imágenes usando Docker Hub.
- Desplegar aplicaciones de Docker utilizando múltiples contenedores con una base de datos.
- Ejecutar aplicaciones usando Docker Compose.

> [!NOTE]
>
> Para obtener una introducción rápida a Docker y los beneficios de contenedorizar tus
> aplicaciones, consulta la sección [Primeros pasos](/get-started/introduction/).

## ¿Qué es un contenedor?

Un contenedor es un proceso en un entorno aislado (sandbox) que se ejecuta en una máquina host y que está aislado de todos los demás procesos que se ejecutan en dicha máquina host. Ese aislamiento aprovecha los [espacios de nombres del kernel y cgroups](https://medium.com/@saschagrunert/demystifying-containers-part-i-kernel-space-2c53d6979504), características que han estado en Linux durante mucho tiempo. Docker hace que estas capacidades sean accesibles y fáciles de usar. En resumen, un contenedor:

- Es una instancia ejecutable de una imagen. Puedes crear, iniciar, detener, mover o eliminar un contenedor utilizando la API o la CLI de Docker.
- Se puede ejecutar en máquinas locales, máquinas virtuales o desplegarse en la nube.
- Es portátil (y se puede ejecutar en cualquier sistema operativo).
- Está aislado de otros contenedores y ejecuta su propio software, binarios, configuraciones, etc.

Si estás familiarizado con `chroot`, entonces piensa en un contenedor como una versión extendida de `chroot`. El sistema de archivos proviene de la imagen. Sin embargo, un contenedor añade un aislamiento adicional que no está disponible al utilizar chroot.

## ¿Qué es una imagen?

Un contenedor en ejecución utiliza un sistema de archivos aislado. Este sistema de archivos aislado es proporcionado por una imagen, y la imagen debe contener todo lo necesario para ejecutar una aplicación: todas las dependencias, configuraciones, scripts, binarios, etc. La imagen también contiene otras configuraciones para el contenedor, como variables de entorno, un comando predeterminado para ejecutar y otros metadatos.

## Siguientes pasos

En esta sección, aprendiste sobre contenedores e imágenes.

A continuación, contenedorizarás una aplicación simple y pondrás en práctica estos conceptos.

[Contenedorizar una aplicación](/get-started/workshop/02_our_app/)



