Informe Técnico Virtualización y contenedores-FERCHO
Informe Técnico Virtualización y contenedores-FERCHO
Informe Técnico Virtualización y contenedores-FERCHO
GA5-
220501106-AA2-EV02.
22 de agosto 2022
Introducción
Hoy en día, los equipos deben publicar aplicaciones rápidamente para atraer y para
mantener el negocio. Este requisito obliga a los equipos de desarrollo de software
y de soporte técnico a buscar siempre las soluciones que ahorran tiempo y reducen
los costos. Una solución ideal reducirá el tiempo empleado en la creación y la
configuración de entornos de implementación, y simplificará el proceso de
implementación de software.
¿Qué es Docker?
Docker es una plataforma de creación de contenedores que se usa para desarrollar,
distribuir y ejecutar contenedores. Docker no usa un hipervisor y se puede ejecutar
en equipos de escritorio o en portátiles para desarrollar y probar las aplicaciones.
La versión de escritorio de Docker es compatible con Linux, Windows y macOS. En
el caso de los sistemas de producción, Docker está disponible para entornos de
servidor, incluidos muchas variantes de Linux, Microsoft Windows Server 2016 y
versiones posteriores. Muchas nubes, incluida la nube de Azure, son compatibles
con Docker.
Arquitectura de Docker
La plataforma Docker consta de varios componentes que usamos para desarrollar,
ejecutar y administrar nuestras aplicaciones en contenedores.
Motor de Docker
El motor de Docker está formado por varios componentes configurados como una
implementación de cliente y servidor en la que ambos se ejecutan
simultáneamente en el mismo host. El cliente se comunica con el servidor mediante
una API REST, la cual le permite comunicarse también con una instancia del
servidor remoto.
El cliente Docker
El servidor de Docker
Objetos de Docker
Hay varios objetos que creará y configurará para admitir las implementaciones de
contenedores. Estos incluyen redes, volúmenes de almacenamiento, complementos
y otros objetos de servicio. Aquí no trataremos todos estos objetos, pero es
conveniente tener en cuenta que son elementos que se pueden crear e
implementar según sea necesario.
Docker Hub
Recuerde que la imagen de contenedor es la unidad que usamos para distribuir las
aplicaciones. También hemos mencionado que un contenedor es un formato
normalizado que usan nuestros equipos de desarrollo y operaciones.
Las imágenes de contenedor son inmutables. Una vez que se crea una imagen, no
se puede cambiar. La única forma de cambiar una imagen es crear una nueva. Esta
característica es nuestra garantía de que la imagen que usamos en el equipo de
producción es la misma que se usa en los equipos de desarrollo y de control de
calidad.
Por ejemplo, en lugar de crear una imagen a partir de scratch y, después, instalar
Ubuntu, vamos a usar una imagen ya basada en Ubuntu. Incluso podemos usar una
imagen que ya tenga Nginx instalado. Una imagen primaria normalmente incluye
un sistema operativo de contenedor.
¿Qué es un Dockerfile?
Un Dockerfile es un archivo de texto que contiene las instrucciones que se usan
para compilar y ejecutar una imagen de Docker. Define los siguientes aspectos de
la imagen:
La imagen base o primaria que usamos para crear la nueva imagen.
Los comandos para actualizar el sistema operativo base e instalar software adicional.
Los artefactos de compilación que se incluirán, como una aplicación desarrollada.
Los servicios que se van a exponer, como la configuración de red y del
almacenamiento.
El comando que se ejecutará cuando se inicie el contenedor.
EJEMPLO:
Supongamos que vamos a crear una imagen de Docker para nuestro sitio web de
ASP.NET Core. El Dockerfile podría tener un aspecto similar al ejemplo siguiente.
Aquí no vamos a analizar todos los comandos del cliente ni todas las marcas de
comando, pero veremos algunos de los comandos más usados. La sección más
información de este módulo incluye vínculos a la documentación de Docker, la cual
abarca todos los comandos y las marcas de comando en detalle.
Una etiqueta de imagen es una cadena de texto que se usa para generar versiones
de una imagen.
Una sola imagen puede tener varias etiquetas asignadas. Por convención, a la
versión más reciente de una imagen se le asigna la etiqueta latest y otra etiqueta
que describe el número de versión de la imagen. Cuando publica una nueva
versión de una imagen, puede volver a asignar la etiqueta "latest" para hacer
referencia a la nueva imagen.
Aquí tiene otro ejemplo. Imagine que quiere usar las imágenes de Docker de
ejemplo de .NET Core. Aquí tenemos cuatro versiones de plataformas entre las que
podemos elegir:
Compartir una aplicación
Para compartir imágenes de Docker, debemos usar un registro de Docker. El
registro predeterminado es Docker Hub y es de donde provienen todas las
imágenes que hemos usado.
ID de ventana acoplable
Crea un repositorio
Para enviar una imagen, primero debemos crear un repositorio en Docker Hub.
4. Una vez que haya iniciado sesión, haga clic en la opción AGREGAR NUEVA
INSTANCIA en la barra lateral izquierda. Si no lo ve, haga su navegador un
poco más ancho. Después de unos segundos, se abre una ventana de
terminal en su navegador.