¡Este es un texto traducido por máquina que puede contener errores!
¿Qué es Docker?
Debes configurar un servidor web en un servidor Linux. Una posibilidad es instalar el servidor web y todas las dependencias directamente en el sistema operativo del servidor. Con Docker, puedes obtener una imagen lista y crear a partir de ella un contenedor.
Aquí deberás poder explicar la diferencia entre una imagen y un contenedor y mostrar lo que hace Docker entre un comando y un servicio en ejecución. No necesitas instalar nada todavía.
Antes de comenzar: ¿Puedes explicar la diferencia entre una máquina virtual (VM) y un contenedor? Si no estás seguro, comienza con Contenedores y máquinas virtuales. Allí también verás cómo Docker puede ejecutarse dentro de una VM de Linux en Proxmox.
Ubicación en el temario: Docker es una herramienta de contenerización. El núcleo del sistema operativo explica qué comparten los contenedores. El diagrama de relaciones Mapa de resumen muestra las relaciones entre el sistema operativo, la VM, el contenedor y las herramientas.
Docker es la herramienta que gestiona los contenedores
Docker puede construir y obtener imágenes, crear e iniciar contenedores y gestionar su red y almacenamiento. En un servidor Linux, este trabajo lo realiza el Motor de Docker.
Cuando escribe docker run, utiliza la cliente de línea de comandos de Docker. El cliente envía una solicitud al servicio de Docker, dockerd, que gestiona el contenedor. En la configuración práctica, tanto el cliente como el servicio se ejecutan dentro de la máquina virtual de Linux.
Puede escribir el comando en la consola de la máquina virtual en Proxmox o en una sesión SSH a esa misma máquina virtual. Ambas vías controlan Docker en la misma máquina virtual. Docker Desktop es otro producto que agrupa las herramientas de Docker en una aplicación de escritorio; no es necesario para la configuración del servidor aquí descrita.
Una imagen puede usarse para varios contenedores
Una imagen es un paquete con los archivos, el programa y las configuraciones utilizados para crear un contenedor. nginx:alpine es un ejemplo: nginx indica el nombre de la imagen y alpine es una etiqueta, un rótulo que apunta a una variante de imagen. Una etiqueta puede apuntar posteriormente a una nueva versión.
Un contenedor es una instancia individual creada a partir de la imagen, con su propio nombre, estado y capa escribible. El contenedor puede estar creado, en ejecución o detenido. Por lo tanto, un programa detenido no significa que el contenedor haya sido eliminado.
La imagen no cambia cuando modificas un archivo en la capa escribible del contenedor. Si creas otro contenedor desde la misma imagen, este tendrá su propia capa escribible.
¿De dónde proviene la imagen?
Un registro de contenedores almacena y distribuye imágenes. Docker Hub y GitHub Container Registry son dos ejemplos.
Cuando una imagen existe en el registro pero no está presente en el servidor, Docker puede obtenerla con docker pull. También puedes construir tu propia imagen a partir del código fuente y un archivo Dockerfile; esto lo verás en Nivel 2.
| Concepto | En el ejemplo del servidor web |
|---|---|
| Registro | Docker Hub, donde se puede descargar la imagen de Nginx. |
| Imagen | nginx:alpine, el paquete descargado. |
| Contenedor | min-nginx, una instancia creada desde ese paquete. |
| Servicio | El servidor web que responde a las solicitudes HTTP mientras el programa está en ejecución. |
¿Qué significan los primeros comandos?
Solo necesitas leer este ejemplo ahora. La instalación y la implementación práctica vienen en Nivel 1.
docker pull nginx:alpine
docker run -d --name min-nginx -p 8080:80 nginx:alpine
docker ps
El primer comando descarga la imagen. El segundo crea y arranca el contenedor min-nginx y conecta el puerto 8080 del servidor con el puerto 80 del contenedor. El tercero muestra los contenedores en ejecución. Nginx es el programa que responde a las solicitudes; Docker gestiona el entorno en el que se ejecuta.
Predice lo que quedará
Tienes una imagen y dos contenedores a partir de ella. Detienes y eliminas solo min-nginx.
- ¿La imagen sigue existiendo?
- ¿Se elimina también
test-nginx? - ¿Puedes crear un nuevo contenedor a partir de la imagen?
Verifica la respuesta: La imagen sigue existiendo y test-nginx no ha sido eliminado. Puedes crear un nuevo contenedor a partir de la misma imagen. Sin embargo, los archivos que estaban únicamente en la capa escribible de min-nginx desaparecen cuando se elimina ese contenedor.
Estás listo para el Nivel 1 si puedes explicar la diferencia con tus propias palabras e identificar el registro, la imagen, el contenedor y el servicio en el ejemplo. Si confundes imagen y contenedor, usa la figura e inténtalo de nuevo con otros nombres de contenedores. Si deseas investigar más, explica por qué docker ps por sí solo no muestra si la imagen existe o si un contenido detenido aún está almacenado.
Continuar
[[Nivel 1 de Docker - Primeros pasos|Instalar el motor de Docker]]. Utiliza la [[Recursos del Nivel 1 de Containerización |recursos de contenedores y máquinas virtuales]] como apoyo cuando quieras ver la relación con las máquinas virtuales (VM) y la virtualización.
Fuentes: Arquitectura de Docker, imagen y ciclo de vida del contenedor. La ilustración está dibujada para este recurso.