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 previaPróxima revisión | Revisión previa | ||
| informatica:sistemas_operativos:cursos:docker_avanzado:fundamentos_docker [2023/10/10 16:47] – 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: | ||
| + | ===== Docker Engine ===== | ||
| + | Es una aplicación cliente-servidor compuesta por 3 elementos: | ||
| + | |||
| + | * Docker Daemon (comando '' | ||
| + | * Un API REST | ||
| + | * El cliente (comando docker) de la interfaz de línea de comando | ||
| + | |||
| + | El Cliente Docker y el Daemon pueden ejecutarse en la misma máquina, o el cliente se puede conectar a un Docker | ||
| + | Daemon remoto | ||
| + | |||
| + | ===== Docker Daemon ===== | ||
| + | |||
| + | El Docker daemon ('' | ||
| + | |||
| + | Un daemon también puede comunicarse con otros daemons para administrar los servicios de Docker. | ||
| + | |||
| + | ===== El Cliente Docker ===== | ||
| + | |||
| + | El cliente Docker (docker) es la forma principal en que muchos usuarios de Docker interactúan con Docker | ||
| + | |||
| + | 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 ===== | ||
| + | |||
| + | Un registro de Docker almacena imágenes de Docker | ||
| + | |||
| + | Docker Hub y Docker Cloud son registros públicos que cualquiera puede usar | ||
| + | |||
| + | Docker está configurado para buscar imágenes en Docker Hub de manera predeterminada. Incluso podemos ejecutar nuestro propio registro privado | ||
| + | |||
| + | Los comandos docker pull o docker run, las imágenes necesarias se extraen del registro configurado | ||
| + | |||
| + | ===== Objetos Docker ===== | ||
| + | |||
| + | ==== Contenedores ==== | ||
| + | |||
| + | 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 // | ||
| + | |||
| + | Docker Engine usa espacios de nombres como los siguientes en Linux: | ||
| + | |||
| + | * El espacio de nombres pid: aislamiento del proceso (PID: ID del proceso). | ||
| + | * El espacio de nombres de red: Gestión de interfaces de red (NET: Redes). | ||
| + | * El espacio de nombres de IPC: gestión del acceso a los recursos de IPC (IPC: comunicación entre procesos). | ||
| + | * El espacio de nombres mnt: Gestión de puntos de montaje del sistema de archivos (MNT: Mount). | ||
| + | * El espacio de nombres uts: Aislamiento del núcleo y los identificadores de versión. (UTS: Sistema de tiempo compartido Unix). | ||
| + | |||
| + | ==== 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**, | ||
| + | |||
| + | 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.1696949262.txt.gz · Última modificación: por tempwin
