• LOGIN
  • No hay productos en el carrito.

Login

Curso de Proxmox Taller 8.- Instalación de Contenedores LXC y Docker en Proxmox

En este taller veremos como instalar contenedores LXC y Docker en Proxmox, los contenedores son máquinas virtuales ligeras que comparten recursos con el host anfitrión y se comunican directamente con el kernel del mismo.

1.- Contenedores LXC

Para instalar un contenedor LXC en proxmox, tenemos primero que descargar una plantilla y luego crearlo con el botón «Crear CT»

1.1.- Descargar una plantilla LXC

Cambiar a la izquierda arriba a «Vista por Carpetas»

Ahora podemos cambiar a «Vista por Servidor»

1.2.- Instalación de un contenedor LXC

Seleccionamos el Servidor Proxmox 1 y click en el botón «Crear CT»

Modificar regla en sophos para dar salida al contenedor a Internet.

Acceder al contenedor con el usuario root y la clave e instalar Apache

Natear el sophos la IP pública el servicio http hacia la IP interna 192.168.XX.3

Probar desde la laptop

2.- Contenedores Docker (Solo referencia)

Los contenedores Docker se derivan LXC y se han convertido en la opción mas popular para desplegar contenedores; y tiene las siguientes versiones

  • Versión para Linux con host anfitrión en Linux y Windows (a través de alphine)
  • Versión para Windows (sólo bajo Windows 2016 Server)

Tiene también un fork llamado podman; creado por Red Hat y que viene a mejorar la seguridad de docker.

2.1.- Ajustes iniciales del Host Anfitrión

El host anfitrión puede ser un equipo físico o virtual, el escenario más común es usar una máquina virtual.
Conectarse a la máquina virtual del servidor web Rocky Linux 8 (Corregir los NAT en el firewall)

Habilitar contabilidad de la memoria y el swap

Actualizar grub

Reiniciar

2.2.- Instalar Docker en el Host Anfitrión Rocky Linux 8}

Añadir repositorio de Docker en Rocky Linux 8

Actualizar la distro

Instalar docker

Iniciar servicio

Habilitar arranque automático de docker

Obtener información de la instalación docker

2.3.- Descarga de imágenes de Docker

Buscar imágenes de contenedores disponibles de centos, incluido tags

Buscar imágenes de contenedores disponibles de ubuntu

Buscar imágenes de contendores disponibles de zentyal

Descargar la imagen oficial de CentOS 8

Ver imágenes descargadas

Ver contenedores en ejecución

Ver todas las imágenes(contenedores) y sus tags

2.4.- Ejecutar un nuevo contenedor (instancia en ejcución de una imagen)

(si el contenedor no existe intentará descargar la imagen)

ó

En otra consola ejecutar ps para ver los contenedores ejecutados y su ID

Ejecutar dentro del contenedor

Instalamos paquetes utiles de red

Verificamos la IP del contenedor

Verificamos la tarjeta del contenedor

ping a la Ip del host anfitrión

ping al DNS de google

Creamos archivo vacío

Verificar los contenedores en ejecución

Ejecutar un nuevo contenedor con un nuevo ID

Verificamos que no existe archivo hola creado en el anterior contenedor

Al salir del container se detiene el mismo

2.5.- Ejecutar un contenedor apagado

Ver todos los contenedores y verifica el ID del contenedor que se quiere ejecutar

Iniciar contenedor apagado

Acceder a contenedor que está ejecutandose en background

2.6.- Ejecutar un nuevo contenedor y guardar los cambios como nueva imagen

Ejecutar un nuevo contenedor

Instalar paquetes básicos

En otra consola ejecutar ps para ver los contenedores ejecutados y su ID

Guardar la imagen con sus cambios en un nuevo contenedor

Ahora volver a la consola del contenedor y salir

Verificar la imagen guardada

Iniciar el contener guardado

Verificar los cambios guardados ejecutando comandos que no estaban en la imagen original

En otra consola ejecutar ps para ver los contenedores ejecutados y su ID

2.7.- Ver información de un contenedor

En otra consola ejecutar ps para ver los contenedores ejecutados y su ID

2.8.- Detener un contenedor por su ID

Detener un contenedor a la fuerza

Verificar ejecución de contenedores

Ver la lista de contenedores detenidos y en ejecución

2.9.- Borrar un contenedor

Detener primero el contenedor

Borrar el contenedor

2.10.- Borrar una imagen

Se deberían borrar primero todos los contendores de la imagen Primero detener todos los contenedores de la imagen luego: Borra otodos los contenedores dependientes de la imagen

Buscar el id de la imagen

Borrar la imagen por su ID

Ver lista de imágenes

2.11.- Borrar todos los contenedores detenidos

2.12.- Automatización de despliegue de imágenes con Dockerfiles

Un procedimiento común para desplegar las imágenes es hacer uso de Dockerfiles que son archivos con un lenguaje de script que permite automatizar el despliegue de servicios (instalación, configuración)

Para centos 7 existe el proyecto https://github.com/CentOS/CentOS-Dockerfiles

que son una serie de Dockerfiles para desplegar múltiples servicios

Para descargar estos Dockerfiles instalamos git en el host anfitrión

Luego descargamos los Dockerfiles

Veremos los archivos Dockerfiles en la carpeta

Editar un archivo Dockerfile

Vamos a editar el Dockerfile de httpd y modificamos el FROM

Deployar una nueva imagen con el Dockerfile (ejemplo apache)

Visualizar las imágenes generadas

2.13.- Ejecutar un container en background en un puerto específico de la máquina real

Previamente detenemos el servicio de apache del host anfitrión para que no haga conflicto con el contenedor de apache

Con la imagen deployada tuxito/httpd vamos a ejecutarlo como demonio en el puerto 80 de la máquina local, con la opcion restart=always el contenedor se ejecutará automáticamente cada vez que se reinicia docker y con la opción -l le damos un nombre al conetenedor para no estar buscando el ID

Ejemplo Opcional Se puede usar un puerto distinto en la máquina real

Natear con Endian el puerto 80 desde la Ip pública a la IP del VPS CentOS

Acceder con el navegador al VPS

Apagar los contenedores después

Reiniciar docker

Verificar los contenedores

2.14.- Gestión de Storage

Cuando se ejecuta un contenedor podríamos querer separar los volúmenes donde se guardan los datos, docker permite asignar un directorio en el cual el contenedor podrá alojar los datos y ser independiente de los contenedores.

Ej: vamos a desplegar el servidor web con el directorio /var/www/html asignado desde la máquina real

En la máquina real ejecutamos Creando un directorio para la data de los containers

Contextos de SELINUX

Si SELINUX esta en modo enforce es necesario brindarle el contexto web al nuevo directorio de la máquina real para que pueda ser accedido en el contenedor

Ejecutando con el Storage asignado

Vamos ahora a ejecutar el contenedor con el directorio de la máquina VPS /data/html apuntado al directorio /var/www/html del contenedor

Visualizar ahora en el navegador de nuestra laptop http://149.56.218.X

Detener el contenedor

2.15.- Gestionando Memoria y Procesador

Ejemplo: Limitando la memoria a 1024M y el uso de 2 CPUs como máximo

Práctica: Deployar MariaDB en clase con almacenamiento para /var/lib/mysql, 2048 de memoria y 4 cores

2.16.- Exportar e Importar una imagen de docker

Exportar una imagen

Importar la imagen de docker

 

Course Reviews

Copyright 2020 © Aula Útil. Todos los derechos reservados.
X