Gestión de contenedores con el curso de choque de Podman | Andrei Balint | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Gestión de contenedores con el curso de choque de Podman

teacher avatar Andrei Balint

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN AL CURSO

      1:42

    • 2.

      Contenedores explicados

      5:51

    • 3.

      Registros de contenedores

      4:14

    • 4.

      Gestión de contenedores

      8:04

    • 5.

      Gestionar imágenes

      4:58

    • 6.

      Almacenamiento persistente

      5:04

    • 7.

      Encuadernación de puertos

      4:18

    • 8.

      Redes de contenedores

      4:09

    • 9.

      Crear imágenes

      4:09

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

37

Estudiantes

--

Proyecto

Acerca de esta clase

Podman es una plataforma para que los desarrolladores y los administradores de sistemas puedan crear, enviar y ejecutar aplicaciones distribuidas, ya sea en computadoras portátiles, máquinas virtuales de centro de datos o en la nube.

Este curso presenta a Podman a un principiante absoluto, usando conferencias muy sencillas y fáciles de entender. Las conferencias son seguidas por demostraciones que muestran cómo configurar y empezar con Podman.

Este curso te ayudará a configurar tu propio entorno de laboratorio personal en el que podrás practicar todos los conocimientos aprendidos aquí.

Al final del curso tendrás una sólida comprensión de los contenedores, cuáles son los beneficios de la containerization y cómo gestionar los contenedores usando la herramienta de gestión de contenedores de Podman.

Con el conocimiento adquirido aquí, podrás configurar tus propios servicios en contenedores en muy poco tiempo y hacer accesible incluso desde el exterior de tu propio anfitrión.

Durante este curso, vas a realizar:

  • Aprende sobre la arquitectura de contenedores y sus beneficios

  • Sumérgete en los registros de contenedores, en qué son y en cómo configurar Podman para que utilicen ciertos registros

  • Ejecuta y administra los contenedores usando Podman

  • Extrae y administra las imágenes de los contenedores con Podman

  • Asignar almacenamiento persistente a los recipientes

  • Aprende a mapear puertos para que tus contenedores sean accesibles desde el exterior

  • Crea y administra la red de contenedores en Podman

  • Crea tus propias imágenes de contenedores a través de DockerFiles y utiliza la creación de Podman

P.S Podman es muy similar a Docker, así que todas las lecciones de este curso pueden ser tan útiles con Docker como lo son con Podman

Conoce a tu profesor(a)

Teacher Profile Image

Andrei Balint

Profesor(a)

Habilidades relacionadas

Desarrollo Herramientas de desarrollo Docker
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. INTRODUCCIÓN AL CURSO: Hola y bienvenidos al curso de gestión de contenedores con Pac-Man. Mi nombre es Andre balance y estoy aquí para ayudarte a aprender los beneficios de contenerización y también cómo crear y administrar contenedores usando la herramienta de gestión de contenedores Pokemon, me gustaría especificar el hombre de la junta es extremadamente similar a Docker. La ganancia de conocimiento aquí se puede utilizar cuando se trabaja con Docker también. Ahora comencemos el curso contándote un poco sobre mí. Soy ingeniero certificado por Red Hat y también especialista en trabajar con contenedores y Kubernetes es mi segunda área de especialización es InfoSec. También estoy certificado CompTIA Security Plus 35 millas a CISO. Entonces ahora que ya saben un poco de mí, vean lo que estaremos cubriendo dentro de este curso. Hagamos un breve resumen de lo que deberíamos estar cubriendo durante este curso. Aprenderemos sobre los contenedores, su arquitectura, en sus beneficios después, que iremos a áreas más prácticas. Y discutiremos los registros de contenedores. Lo son y cómo configurarlos dentro de pod man. A continuación, nos sumergiremos en la gestión de Contenedores, donde veremos cómo crear servicios contenerizados. Ahora podemos manejar bien los contenedores, si también podemos manejar imágenes. Entonces eso es lo que haremos en el siguiente módulo. Los contenedores tienen por defecto almacenamiento efímero. Entonces, si queremos que nuestros cambios persistan más allá de la muerte de un contenedor, tenemos que entender cómo asignar almacenamiento de persistencia a los contenedores. Y eso lo cubriremos en el quinto módulo. En el sexto módulo siete, nos centraremos en Container Networking, donde aprenderemos sobre la vinculación de puertos y la creación de redes. Como hoy, terminaremos este curso aprendiendo a crear nuestras propias imágenes de contenedores a través del uso de archivos Docker y directorios de trabajo. Ahora que tenemos un panorama bastante bueno de lo que cubriremos, Empecemos. 2. Contenedores explicados: Ahora con ahora nuestro primer módulo, hablaremos un poco de los contenedores, qué son, y de los beneficios de la contenerización. Terminaremos este módulo configurando un entorno de laboratorio donde podamos ejecutar todos nuestros ejercicios prácticos para los siguientes módulos. Entonces, sin más preámbulos, comencemos. Ahora veamos un poco cómo funcionan los contenedores. Ahora las aplicaciones de software dependen de bibliotecas del sistema, archivos de configuración o servicios que proporciona el entorno de tiempo de ejecución. Además, el entorno de tiempo de ejecución para una aplicación de software se instala en un sistema operativo que se ejecuta en un host físico o una máquina virtual, los administradores instalan la aplicación en la parte superior de ese sistema operativo. El principal inconveniente aplicaciones de software implementadas tradicionales es que estas dependencias están enredadas con el entorno de tiempo de ejecución. Una aplicación puede requerir versiones anteriores o nuevas de un software de soporte y el software proporcionado por el sistema operativo. Ahí es donde entran los contenedores. Contenedor es un conjunto de uno o más procesos que están aislados del resto del sistema. Piénsalo como un contenedor de envío físico. El contenedor de envío es una forma estándar de empacar y enviar. Se etiqueta cargado, descargado y transportado de un lugar a otro dentro de una sola caja. contenido de los contenedores se aísla del contenido de otros contenedores, por lo que no se afectan entre sí. Por lo que están en aislamiento y funcionan de manera independiente. Entonces, ¿cuáles son las características de un contenedor? Bueno, se ejecutan directamente en el sistema operativo host y comparten esos recursos con todos los contenedores de ese sistema. Compartían el kernel del host. El núcleo aísla los procesos de aplicación del resto del sistema. Requieren mucho menos recursos que las máquinas virtuales, por lo que son más rápidos de iniciar e implementar. E incluyen todas las dependencias como dependencias de sistema y programación y ajustes de configuración. No importa dónde los desplieguen, se comportarán de la misma manera. Ahora que entendemos un poco acerca de la arquitectura de contenedores, veamos algunos términos útiles. Contenedor es un proceso o un conjunto de procesos que ejecutan una imagen con restricciones. Imagen es un paquete que contiene todos los requisitos para ejecutar esos procesos o ese proceso. Un registro es un lugar donde las imágenes pueden ser almacenadas y recuperadas. viejo es la herramienta de gestión de contenedores, que utilizamos gestionó tanto imágenes, contenedores, como la forma en que interactúan. Otra alternativa popular es Docker. Y el pod es uno o varios contenedores, lo que representa una sola aplicación. Entonces veamos un poco los beneficios de la contenerización. En primer lugar, tenemos portabilidad. Un contenedor de aplicaciones crea un paquete de software ejecutable abstraído del sistema operativo host. De ahí que no sea dependiente ni atado al sistema operativo de ninguna manera, haciéndolo portátil y permitiendo que se ejecute de manera consistente y uniforme a través de cualquier plataforma o nube, entonces tenemos velocidad porque no hay sistema operativo para arrancar. Eso también significa que la hora de inicio es muy baja. Los nervios también son muy eficientes es el software que se ejecuta en un entorno contenerizado comparte el núcleo del sistema operativo máquinas host. Los desarrolladores pueden compartir las capas de aplicaciones entre contenedores. Además, los contenedores tienen una capacidad intrínsecamente más pequeña que las máquinas virtuales requieren tiempos de inicio mínimos, lo que permite a los desarrolladores ejecutar más contenedores en la misma capacidad de cómputos que es una máquina. En consecuencia, esto genera mayores eficiencias del servidor y reduce sus costos asociados de servidor y licencias. Y por último, como se dijo anteriormente, debido a que no hay SO para que ambos contenedores también tengan menos gastos generales. Entendemos la arquitectura de contenedores y los beneficios de la contenerización. Configurar el entorno de laboratorio. En primer lugar, repasaremos los requisitos previos para establecer el laboratorio. Después, miraremos los comandos que debemos ejecutar. Por último, haremos una breve demostración para tener nuestro entorno de laboratorio en funcionamiento. Ahora en términos de requisitos previos, necesitamos un host que ejecute Red Hat Enterprise Linux versión ocho o superior. El host tiene que estar conectado a internet. Por lo que necesita una conexión a Internet activa, cual utilizaremos para descargar tanto Birdman también imágenes de contenedor adjuntas a nuestro host. Necesitamos una descripción de autoapoyo o desarrolladores. Entonces eso significa que necesitamos crear una cuenta de desarrollador con Red Hat. Adicionalmente, se recomienda que también tengamos una cuenta en un repositorio de contenedores de donde obtendremos nuestras imágenes, como Docker o arcilla. Pero eso no es obligatorio. Así que ahora veamos los comandos que necesitaremos para configurar nuestro entorno de laboratorio. Entonces en realidad no es tan complicado. Sólo hay tres comandos que tenemos que ejecutar. Registro de Subscription Manager el primer día, el cual registrará nuestro sistema usando nuestra cuenta y contraseña de Red Hat. Después tenemos adjunto Subscription Manager menos menos auto, que adjuntará la suscripción a nuestro host. Y por último, ejecutaremos el comando yum install container tools para instalar la herramienta de gestión de contenedores pobre desde repositorios de red heads después de que hayamos registrado con éxito nuestro host. Así que ahora vamos a poner todos estos comandos en uso y configurar nuestro entorno de laboratorio dentro de nuestra breve demostración. Primero que estaremos usando el comando Subscription Manager registered para registrar mi sistema con Red Hat. Estaré poniendo mi ID de Red Hat y también mi contraseña. Entonces sólo tengo que esperar un poco. Como puede ver, el mensaje de salida es que el sistema ha sido registrado y el nombre del sistema es localhost dot local domain. Utilizaré el comando Subscription Manager attach menos menos auto para adjuntar mi suscripción a mi host. Esto podría tomar un poco de tiempo, pero después de esto se hace, entonces tengo acceso a leer cabezas repositorios también puede ver un mensaje emergente ha aparecido diciendo que el registro es exitoso y mi estado está suscrito dormido. Estaré usando el comando yum install container tools para instalar la herramienta de administración de contenedores llamada Pac-Man desde repositorios de cabezas rojas. puede ver que se está descargando con éxito y se completa. Ahora. Enhorabuena. Ahoratienen un entorno de laboratorio en funcionamiento, estado ejecutando. 3. Registros de contenedores: Previamente instalamos nuestro entorno de laboratorio. Por lo que ahora podemos hablar de registros de contenedores. Primero haremos un panorama teórico de lo que son los registros de contenedores. Y luego pasaremos a la demo, donde haremos nuestro propio registro de contenedores personalizado. Entonces, sin más preámbulos, empecemos. Entonces, ¿cuáles son nuestros registros de contenedores? Bueno, para decirlo simplemente, hay un repositorio de imágenes. Un registro de contenedores es un banco para almacenar y obtener imágenes de contenedores. Un desarrollador carga imágenes de contenedor a un registro de contenedores. A continuación, puede descargar esas imágenes de un registro a un sistema local para ejecutar y crear servicios en contenedores basados en esas imágenes. Existen dos tipos de registros, privados o públicos. Puede utilizar un registro público o uno privado en el que su organización controle la fuente de sus imágenes de contenedor importa, especialmente desde el lado de la seguridad. Para descargar imágenes de la mayoría de los registros, primero necesita tener una cuenta con esos registros y puede ingresar a ese registro utilizando la herramienta de administración de contenedores old man, más específicamente el comando pot man login. Ahora, el archivo de configuración predeterminado para los registros de contenedores se enseña en el archivo slash ETC slash container slash registry.com. Ahora, ambos hombres tienen la capacidad de manejar contenedores despiadados. Eso significa que podemos crear un archivo registry.com en el directorio home del usuario dot config slash containers. Esto tendrá prioridad sobre el general presente en slash, ETC slash container slash registries.com. Ahora dentro del archivo de registro de contenedores, tenemos la sección de búsqueda de estos registros. Dentro de la sección de búsqueda del registro, hay una lista de registro buscable se configura. También tenemos los registros en sección segura. Estos registros no están protegidos con cifrado TLS. Entonces ahora que tenemos una buena visión teórica de los registros, Echemos un vistazo a algunos comandos prácticos y útiles de Pokemon para trabajar con registros. En primer lugar, tenemos el comando old man login usando el comando boat man login, como podemos ver en el ejemplo, ingresaré a mi registered.com usando un nombre de usuario y contraseña. Entonces tenemos el comando pod man info nos dará información sobre la configuración de PODD man, incluyendo registros de búsqueda. Y por último, tenemos el comando de búsqueda del hombre de puerto, El comando de búsqueda de punto hombre. Puedo ir a través de mis registros y buscar una palabra clave específica como HTTPD. Como ejemplo, la búsqueda PacMan, HTTPD buscará en los registros cualquier imagen de contenedor que contenga la palabra clave HTTPD. Entonces, sin más preámbulos, vayamos ahora a la demo y pongamos en práctica nuestros conocimientos aprendidos. Primero, usaré VIM para mostrarte el archivo slash, ETC slash container slash registered.com. Aquí tenemos los registros de búsqueda no calificados. Estos son los registros a través de los cuales busca el hombre pod. Cuando busco una imagen, tenemos aquí el registro.centos.org, quiet.docker.io, etcétera. Ahora voy a estar renunciando a este documento en particular. Crearé una nueva ruta usando el MK D o Command. Y mi nueva ruta será dot config slash containers. Ahora copiaré el archivo slash ETC slash containers slash registered.com en la ruta dot config slash containers. Conservaré el mismo nombre, registry.com. Ahora, editaré este archivo en particular porque solo quiero que mi herramienta de administración de contenedores pod man busque a través de registry.access.redhead.com. Por lo que eliminaré todos los registros que no me gustaría usar, como puntos de registro, Centos.org, quiet.io y docker.io. Entonces guardaré y saldré de este documento. Ahora haré un comando de búsqueda de PubMed con el término HTTPD para probar si mis registros están bien. Y podemos ver claramente que aquí tenemos resultados. Ahora, borraré la pantalla y usaré el comando port man info para obtener información sobre nuestra configuración de Pac-Man. Y podemos ver claramente aquí que los registros que se pueden buscar son sólo registry.access.com. Entonces el único que dejé dentro del archivo dot config slash containers slash registries.com. Por lo que nuestra demo funcionó a la perfección. Muchas gracias y nos vemos en el siguiente módulo. 4. Gestión de contenedores: Anteriormente, aprendimos sobre los registros de contenedores. Ahora dentro de este módulo aprenderemos a administrar contenedores utilizando la herramienta de administración de contenedores pod man. Este será un módulo altamente práctico y terminaremos este módulo con la demo, poniendo en práctica todos nuestros conocimientos aprendidos. Entonces, sin más preámbulos, comencemos. Ahora en términos de comandos útiles, primero tenemos el comando port man pool, especificando un registro y luego una imagen dentro de ese repositorio. Esto descargará esa imagen al host local. Después tenemos el comando de inspección de Pokemon especificando una imagen guardada localmente. Esto nos dará información detallada sobre esa imagen del contenedor. Usando el comando pod man images, podemos obtener una lista de imagen guardada localmente y usando el comando poor man RMI especificando un nombre de imagen, podemos eliminar una imagen guardada localmente. Ahora antes de entrar en contenedores en funcionamiento, hagamos una breve descripción general de los estados en los que se puede encontrar un contenedor. Genial, significa que nuestro contenedor está creado pero no iniciado ejecución significa que un contenedor se está ejecutando con todos sus procesos. Detener significa que se detiene un contenedor y está esperando que se inicie una señal. Sus procesos están esperando lo mismo. Post significa un contenedor y sus procesos están en pausa mientras que eso significa que todos sus procesos han sido salidos. Ahora echemos un vistazo a algunos comandos útiles para ejecutar contenedores utilizando la herramienta de gestión de contenedores de hombre pobre con el podio y comando run. Podemos ejecutar un comando dentro de un contenedor. Podemos especificar el nombre con la opción minus-menos nombre. Y al final del comando, especificamos la imagen en la que se basa ese contenedor mediante el uso de la opción menos d, que significa despegado, significa que el contenedor se ejecutará en modo desapegado. Eso significa que el contenedor correrá en segundo plano hasta que se detenga. Usando el comando pot man ps, podemos listar todos los contenedores en ejecución usando el comando pod man ps con esta opción menos una, podemos enumerar todos los contenedores funcionando o no. Usando el comando pod man logs. Podemos obtener cargas de un contenedor de nombre, lo que podría ayudarnos a solucionar posibles problemas asociados con ese contenedor. Quisiera precisar que si utilizamos la opción menos e, declararemos las variables ambientales que se pasan a ese contenedor. Deportamos man stop comando especificando un nombre de contenedor. Podemos detener un contenedor en funcionamiento con el comando Pac-Man start. Nuevamente, especificando el nombre del contenedor. Podemos iniciar un contenedor detenido usando el comando pod man RM. Podemos quitar un contenedor especificando su nombre. Con el comando Pac-Man cp. Podemos copiar archivos desde el host a un contenedor usando el comando old man exec especificando un nombre de contenedor, podemos ejecutar un comando dentro un contenedor name y usando el comando pot man exec con las opciones menos IT que especifican slash bin slash bash, podemos obtener una terminal dentro de un contenedor de nombre. La opción menos i redirigirá todas las entradas del host al contenedor. Y la opción menos d nos dará pseudo terminal dentro de ese contenedor. Así que ahora que tenemos una buena visión general de todos los comandos importantes necesarios para ejecutar contenedores utilizando la herramienta de administración de contenedores pod. Pasemos a la demo. Ahora primero, buscaré una imagen HTTP D usando el comando de búsqueda del pod man. Simplemente me desplazaré un poco hacia arriba y dentro de la descripción, puedo ver un servidor Apache HTTP 2.4. Copiaré el nombre de esa imagen y borraré la pantalla y usaré el comando Postman pull para descargarla localmente. Como puedes ver, está tratando sacar la imagen del registro, está consiguiendo las firmas fuente y está copiando los blobs mientras hablamos. Entonces solo esperemos un poco. Por lo que la votación ha sido exitosa. Ahora para validar esto, estaré usando el comando pod man images y podemos ver que nuestra imagen está presente aquí. A continuación, usaré el comando port mapping spec para obtener información detallada sobre esta imagen en particular. Podemos ver mucha información aquí. En primer lugar, podemos ver al usuario bajo el cual se ejecuta esta imagen, que se usa en 1001. También podemos ver detalles sobre los puertos expuestos de la imagen, que son 8088443. Un resumen y una descripción de lo que esta imagen está destinada a hacer, el directorio de trabajo de esta imagen, y también detalles sobre el vendedor de la imagen que es pelirroja Incorporated, y la versión de la imagen que es 2.4. Simplemente despejaré la pantalla. Ahora. Ahora estaré usando el comando port VLAN run especificando el nombre de mi Contenedor a través de la opción minus-menos nombre. Y se llamará aplicación web y la imagen en la que basarla. Y podemos ver claramente que el contenedor arrancó. Sí nos da algunos logs y errores, pero ha funcionado correctamente. Simplemente saldré de la pantalla. Ahora usaré el barquero ps menos un comando para listar todos los contenedores. Y podemos ver claramente nuestro contenedor de aplicaciones web, que fue creado hace 39 segundos. Lo eliminaré usando el comando pobre hombre RM especificando su nombre. Ahora, volveré a ejecutar el contenedor, pero ahora en modo desapegado especificado a través de la opción menos d. Voy a mantener la aplicación web del mismo nombre, y se basará en la misma imagen. Validaré mi trabajo a través del uso del comando pause band ps, que nos mostrará todos los contenedores corriendo. Y podemos ver que nuestro contenedor llamado Web App, que fue creado hace dos segundos, está en funcionamiento. Obtendré información detallada este contenedor a través del uso de bitácoras Pac-Man. Y podemos ver algunos logs asociados con nuestro contenedor de aplicaciones web. Ahora, déjenme simplemente borrar la pantalla. Y ahora usemos el comando Pokemon stop para parar con un contenedor de aplicaciones web. Podemos validar nuestro trabajo a través del uso del viejo ps menos un comando donde podemos comprobar el estado del contenedor y éste cambió de hasta salido. Empezaré de nuevo el contenedor usando el comando de inicio del barquero. Y como se puede ver, el estado ha cambiado de nuevo de salido a arriba. Por lo que ahora me gustaría demostrar el comando cp Pac-Man. Pero antes de eso, crearé un documento llamado index.html con el contenido de helloworld usando el comando echo y la redirección de salida, luego usaré el comando port man cp, especificando el archivo index.html que he creado previamente. Y lo estaré transfiriendo al contenedor llamado wet-bulb dentro del pasado slash var slash v, V, v slash HTML slash index.html. Ahora, entraré al contenedor usando el comando exec barquero con las opciones menos IT slash bin slash bash. Como pueden ver, el lote ha cambiado y al ejecutar un comando P S menos ox, puedo ver claramente que ya no estoy en mi host local. Yo estoy dentro del contenedor. Cambiaré directorio a la slash var slash VB slash HTML path. Y aquí puedo hacer un listado. Dentro de ese listado, podemos ver claramente el archivo index.html. Y sólo voy a leer el contenido de ese archivo, que son exactamente como se especifica. Hola Mundo. Hemos copiado con éxito nuestro archivo desde dentro del host local al contenedor en esta ruta especificada. Si quería revisar el contenido de ese archivo sin entrar en el contenedor, puedo hacerlo usando el comando pod man exec para ejecutar el comando cat en estos path especificados. Por lo que ahora es el momento de limpiar después de nosotros mismos. En primer lugar, enumeraré todos los contenedores con el pod man ps menos un comando, y podemos ver claramente nuestro contenedor de aplicaciones web allí. Después detendré el contenedor con el comando Pokemon stop web app. Después, retiraré el contenedor con el comando port man RM. A continuación, enumeraré todas las imágenes presentes en mi host local usando el comando Pokemon images, eliminaré mi imagen existente con el comando pot man RMI. Y volveré a enumerar todas las imágenes con el comando Pokemon images. Y podemos ver claramente que no tenemos imágenes. Y al usar el pod man ps menos un comando, también podemos ver claramente que no hay más contenedores en funcionamiento en este punto. Entonces enhorabuena. Ahora tiene un conocimiento básico de cómo administrar los servicios en contenedores utilizando la herramienta de administración de contenedores port man. Nos vemos en el siguiente módulo donde hablaremos sobre el manejo de imágenes de contenedores. 5. Gestionar imágenes: En el módulo anterior, hablamos de la gestión de contenedores. Ahora, veamos también las formas en que podemos gestionar las imágenes dentro de nuestro entorno. Entonces, sin más preámbulos, comencemos. Ahora, veamos algunos comandos esenciales para manejo de imágenes dentro de los carteros. Anteriormente vimos piscina hombre vertido. Ahora usando el comando port man poor, podemos guardar una imagen de contenedor localmente desde un repositorio. Podemos enumerar todas las imágenes de contenedores utilizando las imágenes de hombre olla. Y si queremos eliminar una imagen guardada localmente, podemos usar el comando pod man RMI especificando el nombre de la imagen. Ahora supongamos que nos gustaría cambiar el nombre de una imagen. Podemos hacerlo usando el comando de etiqueta Pac-Man, especificando el nombre original de la imagen y el nuevo nombre de la imagen. Nos gustaría dársela. Siqueremos subir una imagen de contenedor localmente segura a un registro, podemos hacerlo usando el comando push Pac-Man. Si nos gustaría obtener información detallada sobre una imagen de contenedor almacenada localmente, como se discutió anteriormente, podemos hacerlo usando el comando pot man inspectar. Ahora supongamos que trabajamos dentro de un contenedor como un servidor web HTTP. Y modificamos nuestro archivo index.html y nos gustaría crear una nueva imagen basada en ese contenedor alterado. Podemos hacerlo usando el comando pod men commit para crear una imagen a partir de un contenedor en ejecución. Entonces ahora que tenemos una visión general de todos los comandos importantes para el manejo de imágenes, entremos a la demo. En primer lugar, usaré la búsqueda de port man para encontrar una imagen HTTPD adecuada. Me desplazaré hacia arriba dentro de los resultados. Y de nuevo, voy a copiar el primer resultado, que es HTTP D24 RHEL siete. Despejaría la pantalla y ahora usaré la piscina Pac-Man para poder descargar esa imagen del repositorio y guardarla localmente. Ahora, esperemos un poco a que se finalice el jaleo. Por lo que ahora que la descarga está completa, puedo usar imágenes de Pac-Man con el fin validar que la imagen ha sido exitosa. Y lo podemos ver aquí. Ahora, usaré inspector de hombre de puerto para inspeccionar la imagen. Como puedes ver, Pokemon expect nos da información detallada sobre esta imagen en particular. Podemos ver al usuario bajo el cual se está ejecutando la imagen. Podemos ver los puertos expuestos. Se puede ver un resumen de lo que pretende hacer la imagen, una descripción detallada sobre eso. Ahora, me gustaría retraer la imagen usando el comando de etiqueta de barquero, especificando el nombre original de la imagen y la nueva etiqueta que le daré se llamará mi nueva etiqueta versión 2. Puedo construirlo por trabajo usando el comando de imágenes de Pokemon N. Podemos ver claramente aquí localhost slash minute tag version 2. Ahora estaré usando el contenedor de comandos port man run ejecutándose en modo desapegado. El contenedor se llamará aplicación web y se basará en la imagen llamada minute tag version 2. Como puede ver, el contenedor se creó con éxito. Y ahora correré el Pac-Man ps menos un comando con el fin de validar que está en marcha. ¿ Y qué sabes que está funcionando adecuadamente? A continuación, abriré una terminal dentro del contenedor usando el comando pot man exact menos IT slash bin slash bash. Allí haré una prueba de eco y redirigiré la salida al archivo slash var slash slash HTML slash index.html. Dentro de ese contenedor, saldré del contenedor. Voy a correr Pac-Man ps menos a. nuevo, podemos ver que está en marcha. Y usaré el comando llamado Pac-Man commit fin de crear una imagen basada en este contenedor alterado, pod men commit web app, mi nueva imagen, versión 1, podemos ver que la imagen fue creadocon éxito. Voy a detener el contenedor existente llamado mapa web, y lo eliminaré usando el comando de hombre pobre RM. Despejaré la pantalla. Y ahora crearé un nuevo contenedor corriendo en modo separado con el mismo nombre, pero ahora basado en la imagen comprometida que creamos previamente, el contenedor se ha creado con éxito y ahora estaré usando el comando pot man exec para ejecutar un comando cat dentro del contenedor para ver si el archivo está presente. Barras de barra de gato tales v, V, v slash HTML slash index.html. Y podemos ver claramente que la salida es como se esperaba pruebas Sur, por lo que funcionó a la perfección. Ahora, estaré usando el comando Pokemon stop para detener mi contenedor de aplicaciones web. Lo quitaré usando el comando pod man RM. Ahora estaré ejecutando el comando de imágenes de Pac-Man para listar todas las imágenes guardadas en mi sistema de archivos local. Y eliminaré a cada uno de ellos con el comando Pokemon RMI. Tan orgulloso hombre, RMI, imagen minuto versión 1, pot man, RMI, mi nueva etiqueta 2 y pobre hombre RMI registro dot access, tanto Red Hat.com, podemos validar que nuestros sistemas, se limpia por corriendo el pote man imágenes comando y departamento ps menos un comando y no queda nada ahí. Enhorabuena, ahora tiene un conocimiento básico de cómo administrar imágenes de contenedores utilizando la herramienta de administración de contenedores Pac-Man. Nos vemos en el siguiente módulo donde estaremos hablando de almacenamiento efímero y persistente. 6. Almacenamiento persistente: Hola y bienvenidos de nuevo. En este módulo, hablaremos del almacenamiento de contenedores y aprenderemos a montar almacenamiento persistente dentro de contenedores. Porque por defecto, los contenedores tienen almacenamiento efímero. Entonces eso significa que todo lo que hemos hecho dentro un contenedor en el momento de la destrucción, se ha ido. Entonces vamos a llegar a ello. Por lo que el almacenamiento que utiliza el contenedor es efímero. La naturaleza efímera del almacenamiento de contenedores significa que su contenido se pierde después retirar el contenedor montando un directorio del host dentro del contenedor, usted está dando al contenedor almacenamiento persistente. Todos los cambios y contenidos del directorio montado se escribirán en el sistema de archivos host. Por lo tanto, persistirán después de que el contenedor haya sido destruido o retirado. Ten en cuenta que debes tener en cuenta los permisos del sistema de archivos al montar un volumen persistente para que el contenedor lo use. Ahora la herramienta de administración de contenedores Pokemon soporta contenedores sin raíz si está ejecutando el contenedor como la raíz de usuario del host que el UID y GID coincidirán con los que están dentro del contenedor. En un contenedor sin raíz, usuario tiene acceso root dentro del contenedor porque pod man crea el contenedor dentro del espacio de nombres de usuarios, el usuario raíz del contenedor se asigna al UID del usuario dentro de la máquina host. Cada usuario después dentro del contenedor se asigna a un usuario dentro del rango de 100 mil. Así que ahora veamos algunos comandos útiles para montar almacenamiento persistente dentro de contenedores. Con el mapa Padma unshare cat slash proc slash slash UID. Podemos ver que el mapeo UID de los usuarios dentro del contenedor. Deportamos hombre, unshare cat slash proc slash slash mapa JD. Podemos ver ese mapeo GID. Ahora bien, si quisiéramos montar almacenamiento persistente dentro de un contenedor, estaremos usando el comando pod man run con la opción menos v. El primer comando crea un servidor web HTTP donde el contenido se obtiene del directorio montado slash web content en el host se monta en la slash var slash www dot slash ruta HTML dentro del contenedor. Agregar una Z mayúscula al final de la ruta también asegurará que esté configurando el contexto de SE Linux correcto. Ahora, lleguemos a la demo y hagamos las cosas un poco más prácticas. Así que vamos a empezar esta demo mirando primero los mapeos GID y UID usando el comando pod man unshare. Hombre vaina, no compartir gato slash, proc slash, slash su mapa de identificación. Y aquí podemos ver los mapeos. Y Birdman unshare cat slash proc slash tamaño de celda JID. Y podemos ver los mapeos GID aquí. Entonces ahora que tenemos esto, Vamos a crear realmente un nuevo camino. Crearé un directorio llamado contenido web dentro de la casa de mi usuario. Dentro de esta carpeta, haré eco de mensaje IN montado y redirigiré la salida a un archivo llamado index.html. Ahora borraré la pantalla y veamos qué imágenes tenemos disponibles usando el comando Pac-Man images. No tenemos ninguno. Entonces usaré el comando pod man pull para poder descargar una imagen de un servidor HTTP localmente. Y esperemos un poco a que la imagen termine de descargarse. La imagen ha terminado de descargarse con éxito. Y podemos usar el comando pod man run con el fin de crear un contenedor llamado Web App. Se ejecutará en modo separado y estaré montando el directorio de contenido web que he creado previamente desde mi host a la carpeta slash var slash www slash HTML dentro del contenedor, manteniendo los contextos correctos de SELinux. Al agregar la Z mayúscula al final, enlazaré el puerto a través de la opción menos p. Por lo que el puerto 8082 del host estará ligado al puerto 8080 del contenedor. Y estaré usando la imagen que he descargado previamente. Como podemos ver al usar el comando pod man ps menos a, el contenedor está en funcionamiento y el puerto está delimitado correctamente. Si hago un comando curl en el host local a través del puerto 8082, podemos ver el mensaje, soy Mountain. Ahora usaré el comando exec barquero para conseguir una N-terminal dentro del contenedor y haré eco de un nuevo mensaje. Este mensaje significa que estoy modificado y emitiré la salida estándar, el archivo que montamos dentro del contenedor. Entonces index.html. Saldré del contenedor usando el comando exit, y ahora leeré el archivo desde los puntos de montaje, así desde el contenido web. Y podemos ver que ambos valores están montados y yo modifiqué. Si utilizo el comando curl, podemos ver la misma salida. Ahora, detendré el contenedor y retiraré el contenedor usando el comando pod man RM. Y lo recrearé sólo para ver la naturaleza del almacenamiento persistente. Así que vamos a probar esto ejecutando un comando curl en el host local en el puerto 8082. Como puede ver, el mensaje se ha mantenido sin cambios. Eso se debe a que el almacenamiento de este contenedor en particular para esa ruta en particular se lleva a cabo en el host local. Por lo que a pesar de que el contenedor fue destruido, lo que estaba escrito dentro del directorio de contenido web ha permanecido persistente. Muchas gracias y nos vemos en el siguiente módulo donde estaremos hablando de la vinculación de puertos. 7. Encuadernación de puertos: Hola y bienvenidos de nuevo. En el módulo anterior, hablamos del almacenamiento efímero y almacenamiento persistente, y aprendimos a dar a los contenedores almacenamiento persistente, que no perdamos nada cuando se destruyen. Dentro de este módulo, estaremos hablando de la vinculación de puertos y de cómo enlazar los puertos desde el host local a los puntos de contenedores para hacerlos accesibles también desde el exterior. Entonces vamos a llegar a ello. ¿ Qué es la unión de puertos de contenedores? Bueno, conectarse a un contenedor significa que los clientes deben conectar dos puertos del host que enviarán tráfico a los puertos deportivos de contenedores o a los contenedores expuestos. Podemos mapear puertos del host a aquellos accesibles desde el interior del contenedor, para hacer que los contenedores sean accesibles desde el exterior también, no solo desde el host local. Ten en cuenta que si quieres hacerlos accesibles también desde el exterior, también tenemos que revisar las reglas del firewall para asegurarnos de que se permita cualquier tráfico en esos puertos. Entonces, con esto en mente, echemos un vistazo a algunos comandos esenciales con el fin hacer enlace de puerto de contenedor. Ahora para enlazar un puerto desde el host local al contenedor, estaremos usando el comando pod man run con la opción menos p. Nuestro primer ejemplo crea un servidor web HTTPD en contenedores llamado aplicación web, donde todo el tráfico del puerto 8082 del host se pasa al puerto 8080 del contenedor. Ten en cuenta que el contenedor debe aceptar tráfico en ese puerto. Eso significa que tiene que ser expuesto. Y podemos ver que al usar el comando pot man in spec en la imagen del contenedor, al usar el puerto portmanteau menos un comando, podemos ver todos los mapeos de puertos. Y al usar el comando pod man port especificando el nombre del contenedor, podemos ver el mapeo de puertos para un contenedor de nombre. No olvides crear una regla de firewall persistente usando el comando firewall CMD para permitir el tráfico en ese puerto. Entonces ahora que se tiene una buena visión teórica de lo es el mapeo de puertos y su función dentro de Container Management. Vamos a entrar en la demo. En primer lugar, estaré usando el comando de imágenes de Pokemon para mostrar que tengo una imagen de contenedor HTTPD guardada localmente presente. Entonces usaré el comando port man run para crear un contenedor llamado web app running and detached mode, que reenviará todo el tráfico desde el puerto 8082 desde el lado del host al puerto 8080 en el lado del contenedor. Como podemos ver a través del pod man ps menos un comando, el contenedor está en marcha. Ahora usaré un comando exec de hombre orgulloso con la opción menos i t con el fin de obtener una terminal activa dentro del contenedor. Aquí, haré eco del mensaje hola mundo, y redirigiré la salida al archivo slash var slash www slash HTML slash index.html. Después saldré del contenedor con el comando de salida. Ahora usaremos el port man port menos un comando para ver todos los mapeos de puertos. Y podemos ver claramente el tráfico desde el host local en el puerto 8082 es redirigido al puerto 8080 del contenedor. También podemos ver que mediante el uso del comando port man port especificando el nombre web app. Ahora probemos esto usando un comando curl, y llamaremos al host local en el puerto 8082. Y podemos ver claramente el mensaje de helloworld. Por lo que funcionó a la perfección. Ahora con el fin de hacer accesible el tráfico desde fuera del host local, también agregaré una regla de firewall con el fin de permitir el tráfico en el puerto 8082. Me está pidiendo privilegios administrativos. los daré y ha sido exitoso. Así que ahora nuestro servidor web Apache en contenedores es accesible tanto desde el host local fuera del host local en el puerto 8082. También podemos ver el enlace de puerto, incluso si ejecutamos un Pokemon ps menos un comando, podemos ver claramente aquí que tráfico desde el host local se redirige al puerto 8080 slash TCP en el lado del contenedor. Ahora como sé que debo hacer directamente al puerto 8080 en el lado del contenedor, aquí es donde entra en juego Pokemon inspeccionar. Podemos inspeccionar la imagen del contenedor localmente seguro y estaremos mirando los puertos expuestos. Los puertos expuestos son en realidad lo que es accesible al contenedor. ¿ De dónde permite el tráfico? Entonces así supe que el puerto 8080 era donde debía redirigir el tráfico desde el puerto 8082. Ahora todo lo que queda es limpiar después de nosotros mismos, nuestro stop the container web app con el comando man stop. Después lo eliminaré con el comando Pokemon RM. Y por último, eliminaré la imagen con el comando Pokemon RMI. Muchas gracias y nos vemos en el siguiente módulo donde estaremos hablando de Container Networking. 8. Redes de contenedores: Hola y bienvenidos de nuevo. En el módulo anterior, hablamos un poco sobre el mapeo de puertos y vinculación de un puerto host a un puerto de contenedores expuestos. Ahora iremos más a fondo con Container Networking. Veremos la capacidad del pobre para crear redes y resolver nombres dentro de esas redes. Entonces, sin más preámbulos, comencemos. Ahora echemos un vistazo a algunos inicios esenciales para Container Networking. El comando importante aquí es ambos hombres red con la red cartero crear comando. Podemos hacer una red especificando su nombre de puerta de enlace y subred. La red de hombre pobre inspecciona especificando un nombre de red, podemos obtener detalles sobre una red existente. Deportamos man network crea especificando un nombre de contenedor. Podemos conectar el contenedor a una red existente. Deportamos hombre red removida. Podemos eliminar una red existente y deportamos comando man run. Podemos agregar la opción de red menos menos y conectar el contenedor a una red en el momento de la creación. Entonces ahora que tenemos una buena visión general de comandos importantes relacionados con Container Networking, entremos a la demo. Ahora para iniciar esta demo, usaré el comando port man images para mostrarte mi imagen de contenedor HTTPD guardada localmente. Ahora usaré el comando search del pobre hombre para buscar una octava imagen de Red Hat Enterprise Linux. Yo lo he copiado y ahora estaré usando los comandos post man Paul para descargarlo localmente. Entonces esperemos un poco a que termine la descarga. Ahora estaré usando el comando poor man network create para crear una red para mis contenedores. La subred se especificará a través la opción menos menos subred, y será 192168 punto un punto 0 barra 24. Y la puerta de enlace se especificará a través de la opción minus-menos gateway, y será 192168 punto uno, punto uno. El nombre de mi red será mi red. Ahora que la red ha sido creada con éxito, podemos pasar a crear mis servicios en contenedores. En primer lugar, usaré el comando Pac-Man run para crear un contenedor llamado cliente corriendo en modo separado, conectado a mi red a través la opción de red minus-menos con almacenamiento persistente. Y la imagen base detrás de este contenedor será la imagen base ocho de Red Hat Enterprise Linux. Como se puede ver, el contenedor se ha creado con éxito y voy a enumerar o ejecutar contenedores con el Pokemon ps menos una opción, y está en marcha. Después crearé mi segundo servicio contenerizado usando el comando Pokemon run. Este será un servidor web Apache llamado servidor web, corriendo en modo separado, conectado también a mi red. Utilizará la imagen register.access.com http D24 L7, cual tengo almacenada localmente. Este segundo contenedor también fue creado con éxito. Podemos verlos tanto en marcha como en funcionamiento. Ahora, usaré el comando pod man network ls para ver todas nuestras redes disponibles. Y aquí podemos ver claramente mi red. Y para obtener información más detallada de mi red, utilizaré el comando de inspección de red cartero especificando el nombre de mi red. Y podemos ver aquí tanto la subred como la puerta de enlace. Entonces ahora que tenemos una buena visión general tanto de nuestra red como de nuestros contenedores, veamos si todo funciona. Utilizaré el comando port man exec con la opción menos IT para abrir un terminal dentro del contenedor del servidor web. Aquí usaré el comando echo y redirigiré su salida al archivo slash var slash www slash HTML slash index.html. Con el fin de crear un mensaje personalizado. Más específicamente, hola, saldré de este contenedor, y ahora entraré otro contenedor, el contenedor cliente, nuevamente con el pot man exento menos opción IT para conseguir una terminal dentro del cliente que está ejecutando Red Hat Enterprise Linux ocho. Aquí usaré el comando curl para rizar el servidor web en el puerto 8080, que fue el expuesto. Y podemos ver claramente que el mensaje es como se esperaba. Entonces felicidades, creamos dos contenedores. Uno corriendo en un servidor web Apache contenerizado ejecutando Red Hat Enterprise Linux ocho, creamos una red entre los dos y podemos ver que se comunican y también tienen nombre de resolución del servidor. Muchas gracias y nos vemos en el siguiente y último módulo. 9. Crear imágenes: Bienvenido al módulo final de nuestro curso. Aquí aprenderemos a construir imágenes de contenedores a partir de archivos para ayudarnos a crear nuestras propias imágenes personalizadas y personalizarlas según nuestras propias necesidades. Entonces, sin más preámbulos, comencemos. En primer lugar, hablaremos de los pasos para construir una imagen de contenedor. Para que Birdman pueda construir imágenes automáticamente leyendo los pasos de un archivo Docker, podrías preguntarte ¿qué es un archivo Docker? Un archivo Docker es un documento de texto que contiene todos los comandos que un usuario podría llamar para ensamblar una imagen. Ahora, los archivos Docker también facilitan tanto creación de nuevas imágenes de contenedor basadas en una existente, como la ampliación de unancho de imagen de contenedor Enterprise Linuxclasificado ancho de imagen de contenedor Enterprise Linux y la funcionalidad HTTPD. Así que sigamos adelante y veamos cómo realmente creamos una imagen de contenedor. En primer lugar, crear un directorio de trabajo que contenga todos los archivos necesarios para construir la imagen del contenedor. Después creamos un archivo Docker. Un archivo Docker es solo un documento de texto que contiene todos los comandos que un usuario podría llamar para ensamblar una imagen. Y por último, utilizamos depósitos man build command. Utilizamos el comando Poll Man build para crear la imagen basada en el archivo docker y otros recursos dentro del directorio de trabajo. Así que ahora echemos un vistazo a un Dockerfile de muestra y veamos nuestras posibilidades. Ahora aquí tenemos un simple Dockerfile. El campo from indica qué imagen de Bates se va a extender. El campo etiqueta indica qué etiqueta tendrá esta imagen de contenedor. El Rosenfield ejecuta comandos dentro de la imagen base, el campo expuesto expone puertos desde el lado del contenedor. El campo EM establece variables ambientales dentro del contenedor. El campo de copia copia del directorio de trabajo al contenedor. El campo usuario establece el usuario bajo el cual se ejecuta el contenedor ya que el campo add es similar al campo copy. El campo de punto de entrada dice el comando con el que comienza el contenedor. Y podemos crear el contenedor mediante el análisis este archivo Docker con el comando pod men build. Entonces pongamos todo este conocimiento en práctica pasando a la demo. Ahora iniciaré esta demo enumerando el contenido de mi directorio de trabajo. Tengo un archivo index.html que contiene el mensaje hello world, y un archivo Docker pre-hecho que armé previamente. Echémosle un vistazo. Por lo que extiende la imagen siete de Red Hat Enterprise Linux, el usuario bajo el cual el contenedor se está ejecutando como root. Se ejecuta un yum install menos y HTTPD. Para instalar el servicio HTTPD, expone el puerto 80 y copia el archivo index.html del directorio de trabajo en todo el contenedor slash var slash slash HTML slash index.html path. Ahora, usaré el comando port man build para crear mi imagen. Estoy especificando la opción menos d para etiqueta, que le dará a madre mi imagen, el nombre de mi imagen HTTPD. Ahora, usaré el comando Pac-Man images para ver si la imagen fue creada. Y lo podemos ver aquí, localhost slash mi imagen HTTPD. Ahora vamos a darle una prueba. Utilizaré el comando pot man run especificando que el contenedor se ejecutará en modo desapegado. El nombre de mi Contenedor será Web App. Estaré reenviando el puerto 8082 al puerto 80 del contenedor, y estaré usando mi propia imagen creada. El contenedor parece estar en marcha. El reenvío de puertos parece funcionar. Así que vamos a hacer un rizo en el host local en el puerto 8082, y podemos ver claramente el mensaje hello world. Por lo que el archivo se copió con éxito. Ingresemos al contenedor con las opciones exec de Pac-Man menos i t para abrir una terminal dentro del contenedor. Como se puede ver, el terminal se abrió como root. Entonces se usa el usuario que lo especifico en el archivo Docker y el archivo que copiamos del host local al contenedor está presente. Por lo que el archivo Docker hizo lo prometido. Contamos con un sistema operativo en contenedores Red Hat Enterprise Linux seven que se ejecuta en el servicio HTTPD. Al terminar esta demo, también hemos terminado nuestro curso acelerado sobre administración de contenedores. Agradezco su asistencia y tal vez nos veamos en otros cursos futuros. Muchas gracias.