informatica:sistemas_operativos:cursos:docker_avanzado:fundamentos_docker
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previa | |||
| informatica:sistemas_operativos:cursos:docker_avanzado:fundamentos_docker [2023/10/10 17:46] – tempwin | informatica:sistemas_operativos:cursos:docker_avanzado:fundamentos_docker [2023/10/10 17:57] (actual) – tempwin | ||
|---|---|---|---|
| Línea 3: | Línea 3: | ||
| Contenido perteneciente al curso [[informatica: | Contenido perteneciente al curso [[informatica: | ||
| - | Arquitectura Docker | + | ===== Docker Engine |
| - | El Docker Daemon | + | |
| - | u El Docker daemon (dockerd) escucha las solicitudes de la API de Docker y | + | |
| - | gestiona los objetos de Docker, como imágenes, contenedores, | + | |
| - | volúmenes. | + | |
| - | u Un daemon también puede comunicarse con otros daemons para administrar | + | |
| - | los servicios de Docker. | + | |
| - | El Cliente Docker | + | |
| - | u El cliente Docker (docker) es la forma principal en que muchos usuarios de | + | |
| - | Docker interactúan con Docker | + | |
| - | u Cuando se utilizan comandos como docker run, el cliente envía estos | + | |
| - | comandos a dockerd, que los lleva a cabo | + | |
| - | u El comando docker usa la API Docker. El cliente de Docker puede | + | |
| - | comunicarse con más de un daemon | + | |
| - | Los registros de Docker | + | |
| - | u Un registro de Docker almacena imágenes de Docker | + | |
| - | u Docker Hub y Docker Cloud son registros públicos que cualquiera puede usar | + | |
| - | u Docker está configurado para buscar imágenes en Docker Hub de manera | + | |
| - | predeterminada. Incluso podemos ejecutar nuestro propio registro privado | + | |
| - | u Los comandos docker pull o docker run, las imágenes necesarias se | + | |
| - | extraen del registro configurado | + | |
| - | Objetos Docker: Contenedores | + | |
| - | u Un contenedor es una instancia ejecutable de una imagen | + | |
| - | u Se puede crear, iniciar, detener, mover o eliminar un contenedor utilizando la | + | |
| - | API Docker o el CLI | + | |
| - | u Se puede conectar un contenedor a una o más redes, adjuntarle | + | |
| - | almacenamiento o incluso crear una nueva imagen en función de su estado | + | |
| - | actual | + | |
| - | u Relativamente bien aislado de otros contenedores y su máquina host | + | |
| - | u Se define por su imagen y por las opciones de configuración que se le | + | |
| - | proporciona cuando se crea o inicia | + | |
| - | u Cuando se elimina un contenedor, desaparecen los cambios en su estado que | + | |
| - | no se almacenan en el almacenamiento persistente | + | |
| - | Objetos Docker: Imágenes | + | |
| - | u Una imagen es una plantilla de 'solo lectura' | + | |
| - | con instrucciones para crear un contenedor | + | |
| - | Docker | + | |
| - | u A menudo, una imagen se basa en otra | + | |
| - | imagen, con alguna personalización | + | |
| - | adicional. Por ejemplo, se puede compilar | + | |
| - | una imagen basada en la imagen Ubuntu, | + | |
| - | pero que instala el servidor web Apache y | + | |
| - | nuestra aplicación, | + | |
| - | configuración necesarios para ejecutar | + | |
| - | nuestra aplicación | + | |
| - | Objetos Docker: Servicios | + | |
| - | u Los servicios permiten escalar contenedores a través de múltiples demonios | + | |
| - | Docker, que trabajan juntos como un enjambre con múltiples gerentes y | + | |
| - | trabajadores | + | |
| - | u Cada miembro de un enjambre es un demonio Docker, y todos los demonios se | + | |
| - | comunican mediante la API Docker | + | |
| - | u Permite definir el estado deseado, como el número de réplicas del servicio | + | |
| - | que deben estar disponibles en un momento dado | + | |
| - | u De manera predeterminada, | + | |
| - | nodos de trabajo | + | |
| - | u Para el usuario, el servicio Docker parece ser una sola aplicación | + | |
| - | u Docker Engine | + | |
| - | Dockerfile | + | |
| - | u Se utilizan para crear imágenes de contenedor | + | |
| - | u Un Dockerfile es un documento de texto que contiene toda la información de | + | |
| - | configuración y los comandos necesarios para ensamblar una imagen de | + | |
| - | contenedor (tarea que realiza el | + | |
| - | Docker Daemon) | + | |
| - | Namespaces | + | Es una aplicación cliente-servidor compuesta por 3 elementos: |
| - | u Docker usa un conjunto de namespaces para garantizar el aislamiento de | + | |
| - | cada contenedor | + | * Docker Daemon (comando '' |
| - | u Docker Engine usa espacios de nombres como los siguientes en Linux: | + | * Un API REST |
| - | u El espacio de nombres pid: aislamiento del proceso (PID: ID del proceso). | + | * El cliente (comando docker) de la interfaz de línea de comando |
| - | u El espacio de nombres de red: Gestión de interfaces de red (NET: Redes). | + | |
| - | u El espacio de nombres de IPC: gestión del acceso a los recursos de IPC (IPC: | + | El Cliente Docker y el Daemon pueden ejecutarse en la misma máquina, o el cliente se puede conectar a un Docker |
| - | comunicación entre procesos). | + | Daemon remoto |
| - | u El espacio de nombres mnt: Gestión de puntos de montaje del sistema de archivos | + | |
| - | (MNT: Mount). | + | ===== Docker Daemon ===== |
| - | u El espacio de nombres uts: Aislamiento del núcleo y los identificadores de versión. | + | |
| - | (UTS: Sistema de tiempo compartido Unix). | + | El Docker daemon ('' |
| - | Control de grupos cgroups | + | |
| - | u Un | + | Un daemon también puede comunicarse con otros daemons para administrar los servicios de Docker. |
| - | cgroup limita una aplicación a un conjunto específico de recursos | + | |
| - | u Estos grupos permiten que Docker Engine comparta los recursos de hardware | + | ===== El Cliente Docker ===== |
| - | disponibles con los contenedores y, opcionalmente, | + | |
| - | restricciones | + | El cliente Docker (docker) es la forma principal en que muchos usuarios de Docker interactúan con Docker |
| - | u Por ejemplo, se puede limitar la cantidad de memoria disponible para un | + | |
| - | contenedor específico | + | Cuando se utilizan comandos como docker run, el cliente envía estos comandos a dockerd, que los lleva a cabo |
| - | Sistema de unión de ficheros | + | u El comando docker usa la API Docker. El cliente de Docker puede comunicarse con más de un daemon |
| - | u Los sistemas de unión de ficheros, o UnionFS, son sistemas de archivos que | + | |
| - | operan creando capas, haciéndolos muy livianos y rápidos | + | ===== Los registros de Docker ===== |
| - | u Docker Engine utiliza UnionFS para proporcionar los bloques de construcción | + | |
| - | para contenedores | + | Un registro de Docker almacena imágenes de Docker |
| - | u Docker Engine puede usar múltiples variantes de UnionFS, incluidas AUFS, | + | |
| - | btrfs, vfs y DeviceMapper | + | Docker Hub y Docker Cloud son registros públicos que cualquiera puede usar |
| - | Formato contenedor | + | |
| - | u Docker Engine combina los | + | Docker está configurado para buscar imágenes en Docker Hub de manera predeterminada. Incluso podemos ejecutar nuestro propio registro privado |
| - | namespaces, | + | |
| - | cgroups y | + | Los comandos docker pull o docker run, las imágenes necesarias se extraen del registro configurado |
| - | UnionFS en un contenedor | + | |
| - | llamado formato contenedor | + | ===== Objetos Docker ===== |
| - | u El formato de contenedor predeterminado es libcontainer | + | |
| - | u En el futuro, Docker puede admitir otros formatos de contenedor al integrarse | + | ==== Contenedores ==== |
| - | con tecnologías como BSD Jails o Solaris Zones. | + | |
| + | Un contenedor es una instancia ejecutable de una imagen | ||
| + | |||
| + | Se puede crear, iniciar, detener, mover o eliminar un contenedor utilizando la API Docker o el CLI | ||
| + | |||
| + | Se puede conectar un contenedor a una o más redes, adjuntarle almacenamiento o incluso crear una nueva imagen en función de su estado actual | ||
| + | |||
| + | Relativamente bien aislado de otros contenedores y su máquina host | ||
| + | |||
| + | Se define por su imagen y por las opciones de configuración que se le proporciona cuando se crea o inicia | ||
| + | |||
| + | Cuando se elimina un contenedor, desaparecen los cambios en su estado que no se almacenan en el almacenamiento persistente | ||
| + | |||
| + | ==== Imágenes ==== | ||
| + | |||
| + | Una imagen es una plantilla de 'solo lectura' | ||
| + | |||
| + | A menudo, una imagen se basa en otra imagen, con alguna personalización adicional. Por ejemplo, se puede compilar | ||
| + | una imagen basada en la imagen Ubuntu, pero que instala el servidor web Apache y nuestra aplicación, | ||
| + | |||
| + | ==== Servicios ==== | ||
| + | |||
| + | Los servicios permiten escalar contenedores a través de múltiples demonios Docker, que trabajan juntos como un enjambre con múltiples gerentes y trabajadores | ||
| + | |||
| + | Cada miembro de un enjambre es un demonio Docker, y todos los demonios se comunican mediante la API Docker | ||
| + | |||
| + | Permite definir el estado deseado, como el número de réplicas del servicio que deben estar disponibles en un momento dado | ||
| + | |||
| + | De manera predeterminada, | ||
| + | |||
| + | Para el usuario, el servicio Docker parece ser una sola aplicación | ||
| + | |||
| + | Docker Engine admite el modo enjambre en Docker 1.12 y superior | ||
| + | |||
| + | A día de hoy se usa Kubernetes u Openshift. | ||
| + | |||
| + | ==== Dockerfile ==== | ||
| + | |||
| + | Se utilizan para crear imágenes de contenedor | ||
| + | |||
| + | Un **Dockerfile** es un documento de texto que contiene toda la información de configuración y los comandos necesarios para ensamblar una imagen de contenedor (tarea que realiza el Docker Daemon) | ||
| + | |||
| + | ==== Namespaces ==== | ||
| + | |||
| + | Docker usa un conjunto de //namespaces// para garantizar el aislamiento de cada contenedor. | ||
| + | |||
| + | Docker Engine usa espacios de nombres como los siguientes en Linux: | ||
| + | |||
| + | * El espacio de nombres pid: aislamiento del proceso (PID: ID del proceso). | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | ==== Control de grupos cgroups | ||
| + | |||
| + | Un **cgroup** limita una aplicación a un conjunto específico de recursos | ||
| + | |||
| + | Estos grupos permiten que Docker Engine comparta los recursos de hardware disponibles con los contenedores y, opcionalmente, | ||
| + | |||
| + | Por ejemplo, se puede limitar la cantidad de memoria disponible para un contenedor específico | ||
| + | |||
| + | ==== Sistema de unión de ficheros | ||
| + | |||
| + | Los sistemas de unión de ficheros, o UnionFS, son sistemas de archivos que operan creando capas, haciéndolos muy livianos y rápidos | ||
| + | |||
| + | Docker Engine utiliza UnionFS para proporcionar los bloques de construcción para contenedores | ||
| + | |||
| + | Docker Engine puede usar múltiples variantes de UnionFS, incluidas AUFS, btrfs, vfs y DeviceMapper | ||
| + | |||
| + | ==== Formato contenedor | ||
| + | |||
| + | Docker Engine combina los **namespaces**, **cgroups** y **UnionFS** en un contenedor llamado | ||
| + | |||
| + | El formato de contenedor predeterminado es '' | ||
| + | |||
| + | En el futuro, Docker puede admitir otros formatos de contenedor al integrarse con tecnologías como BSD Jails o Solaris Zones. | ||
informatica/sistemas_operativos/cursos/docker_avanzado/fundamentos_docker.1696952788.txt.gz · Última modificación: por tempwin
