José Juan Sánchez Hernández

Aprender Docker, un enfoque práctico


Скачать книгу

de especificaciones y estándares abiertos, mientras que la CNCF está orientada al desarrollo de proyectos open source.

      La Open Container Initiative (OCI) fue creada en 2015 por Docker, Inc., CoreOs y otras empresas, con el objetivo de diseñar estándares abiertos para que las tecnologías de contenedores no estuviesen vinculadas a ninguna empresa ni proyecto específico.

      En la actualidad, la OCI cuenta con tres especificaciones:

      Illustration OCI Runtime Specification

      En esta especificación, se describe cómo tiene que ser la configuración, el entorno de ejecución y el ciclo de vida de un contenedor.

      Illustration OCI Image Format Specification

      Esta especificación define cómo tiene que ser una imagen OCI, para que todas las herramientas que cumplan este estándar puedan hacer uso de ella.

      Las imágenes OCI están formadas por un archivo de manifiesto, un índice (opcional) que apunta a otros archivos de manifiesto para diferentes arquitecturas, el conjunto de capas que forman el sistema de archivos de la imagen y un archivo de configuración.

      Illustration OCI Distribution Specification

      Esta especificación define una API para facilitar y estandarizar la distribución de imágenes OCI.

Illustration

      La Cloud Native Computing Foundation (CNCF) es una organización que fue creada en 2015, donde las grandes empresas de la industria tecnológica colaboran entre sí para impulsar el uso de las tecnologías abiertas en la nube mediante proyectos de código abierto que no están vinculados a un único proveedor. Esta organización forma parte de la Fundación Linux y actualmente cuenta con el apoyo de las principales empresas del sector.

      Las tecnologías conocidas como «Cloud Native» hacen referencia a las tecnologías actuales, que permiten ejecutar aplicaciones escalables en entornos de nube pública, privada o híbrida. Algunos ejemplos de estas tecnologías son los contenedores, los microservicios, las mallas de servicios, la infraestructura inmutable y las API declarativas.

      Los proyectos de la CNCF se clasifican según su nivel de madurez en:

      Illustration Proyectos graduados.

      Illustration Proyectos en incubación.

      Illustration Proyectos en sandbox.

      Entre los proyectos graduados, encontramos dos de los proyectos de los que hemos estado hablando en este capítulo:

      Illustration containerd: se encuentra en la categoría de container runtime.

      Illustration Kubernetes: se sitúa en la categoría de orquestación.

Illustration

      Docker no es la única tecnología de contenedores que existe en la actualidad. De hecho, existen varias alternativas, pero solo vamos a nombrar algunas de las más conocidas:

      Illustration Podman

      Se trata de un container engine desarrollado por Red Hat. A diferencia de Docker, Podman no utiliza ningún proceso daemon y no necesita privilegios de root. Solo está disponible para sistemas operativos Linux y es compatible con las especificaciones OCI.

      Illustration cri-o

      Es un container runtime de alto nivel para Kubernetes. Se trata de una implementación de la especificación Kubernetes CRI (Container Runtime Interface), que permite utilizar cualquier runtime compatible con la especificación OCI. Actualmente, tiene soporte para interaccionar con los runtimes de bajo nivel runc y Kata Containers.

      Illustration LXD

      Es un proyecto open source desarrollado por Canonical, pero también recibe contribuciones de otras empresas y desarrolladores individuales. Este container engine permite trabajar con contenedores LXC (Linux Containers).

      Illustration rkt

      Este proyecto fue desarrollado originalmente por CoreOS en 2014. Años más tarde, Red Hat adquirió CoreOS y donó el proyecto a la CNCF. En 2020, se suspendió su desarrollo.

      CAPÍTULO 2

      Instalación de Docker

      2.1. Docker Engine Community

      Cuando decimos que vamos a instalar Docker en una máquina, realmente queremos decir que vamos a instalar el componente Docker Engine. Y lo más probable es que nos estemos refiriendo a la versión de la comunidad o Docker Engine Community.

      Actualmente, existen dos ediciones de Docker Engine:

      Illustration Docker Engine Community Edition (CE)

      Es la versión open source mantenida por la empresa Docker, Inc.

      Illustration Docker Engine Enterprise Edition (EE) o Mirantis Container Runtime (MCR)

      Es una versión empresarial para sistemas Linux y Windows Server. Es uno de los productos que adquirió la empresa Mirantis cuando compró la plataforma Docker Enterprise en noviembre de 2019. Su nombre original era Docker Engine Enterprise, pero ha sido renombrado a Mirantis Container Runtime (MCR).

      En este capítulo, nos vamos a centrar en la instalación de la versión Docker Engine Community para los sistemas operativos Linux, Windows y macOS.

      Para instalar la versión Docker Engine Community, utilizaremos los siguientes productos:

      Illustration Docker Engine para Linux.

      Illustration Docker Desktop para Windows.

      Illustration Docker Desktop para macOS.

      En