Introducción a las imágenes Docker
Las imágenes Docker son la base de los contenedores Docker, que son los componentes fundamentales de las aplicaciones basadas en Docker. Una imagen Docker es una plantilla de solo lectura que contiene un conjunto de instrucciones para crear un contenedor Docker. Estas instrucciones incluyen el sistema operativo, el software, las bibliotecas y las dependencias necesarias para ejecutar una aplicación.
Las imágenes Docker se almacenan en un registro Docker, que es un repositorio centralizado para las imágenes Docker. El registro Docker más popular es Docker Hub, que alberga una gran colección de imágenes Docker públicas y oficiales.
Para entender las imágenes Docker, exploremos los conceptos clave:
¿Qué es una imagen Docker?
Una imagen Docker es un paquete ejecutable ligero y autónomo que incluye todo lo necesario para ejecutar una aplicación: el código, el entorno de ejecución, las herramientas del sistema, las bibliotecas y la configuración. Las imágenes Docker son la base para crear contenedores Docker.
Capas de la imagen Docker
Las imágenes Docker se construyen a partir de una serie de capas. Cada capa representa una instrucción en el Dockerfile de la imagen. Cuando se modifica el Dockerfile y se vuelve a construir la imagen, solo se vuelven a construir las capas que han cambiado. Esto hace que la construcción de la imagen sea eficiente y ayuda a minimizar el tamaño de las imágenes Docker.
Obtener y ejecutar imágenes Docker
Puedes obtener imágenes Docker de un registro, como Docker Hub, utilizando el comando docker pull. Una vez que tienes una imagen, puedes crear un contenedor a partir de ella utilizando el comando docker run.
## Pull the Ubuntu 22.04 image from Docker Hub
docker pull ubuntu:22.04
## Run a container based on the Ubuntu 22.04 image
docker run -it ubuntu:22.04 /bin/bash
Esto iniciará un nuevo contenedor basado en la imagen Ubuntu 22.04 y te dará una terminal dentro del contenedor.
Convenciones de nomenclatura de las imágenes Docker
Las imágenes Docker siguen una convención de nomenclatura específica: [registry-host[:port]]/[username/]name[:tag]. El formato más común es name:tag, donde name es el nombre de la imagen y tag es la versión o variante de la imagen.