APIs Technology
blog Docker

Hoy en día, hay un gran revuelo sobre la contenerización y Docker. ¿Qué es exactamente? ¿Cómo se relaciona con la contenedorización? ¿Cuáles son los beneficios de utilizarlo? ¿Por qué se hizo tan popular? En este blog responderemos a estas preguntas.

¿Qué es Docker?

Docker es un proyecto Open Source creado y liderado por Solomon Hykes que afronta el problema de la virtualización de servicios y programas. Este tema es muy importante, ya que se busca aprovechar al máximo el recurso disponible (un servidor) para ejecutar los servicios que necesitemos.

El funcionamiento de Docker es distinto a los métodos más comunes que se han utilizado anteriormente, ya que no necesita un sistema operativo invitado para ejecutar sobre él los servicios, sino que lo hace sin este intermediario.

Esta tecnología se denomina de contenedores, siendo un contenedor un programa, servicio o sistema que queremos desplegar. Esta arquitectura se puede ver en la siguiente ilustración:

arquitectura docker

Al no utilizar máquinas virtuales es capaz de conseguir un mayor rendimiento, ya que el consumo de recursos es menor. Sin embargo, gracias al uso del kernel de Linux es capaz de aislar cada contenedor. Esta decisión también aporta otras características como una mayor seguridad (gracias a estar aislados) o un despliegue más rápido de los recursos.

Conceptos clave

¿Qué es una imagen?

Una imagen representa una plantilla, donde se definen el sistema operativo origen (Alpine, Ubuntu…) y el conjunto de programas, librerías, otros softwares, configuraciones, etc. que tendrán que estar disponibles.

¿Qué es un contenedor?

Un contenedor es una instancia de una imagen. Las imágenes al ser plantillas no se pueden arrancar, parar, reiniciar, etc; los contenedores sí. Los contenedores al estar arrancados pueden modificar su estado, mientras que una misma imagen siempre es igual en varios ordenadores, un contenedor puede que no.

¿Qué es un Docker Composer?

Docker compose es una utilidad que nos permite gestionar varios contenedores, formando un grupo de recursos. Lo que permite que compartan otros recursos, puertos, archivos, etc.

¿Qué es un orquestador de contenedores?

Un orquestador de contenedores, es un software que permite gestionar un conjunto de contenedores de manera sencilla, permitiendo en la mayoría de los casos:

  • La gestión de contenedores en entornos distribuidos
  • El balanceo de carga entre los contenedores
  • Levantar un número variable de réplicas, así como escalado automático
  • Comprobación del estado de los contenedores

¿Qué es Docker Swarm? ¿Qué es Kubernetes?

Ambos son orquestadores, el primero es la propuesta de Docker y el segundo la de Google. Kubernetes se ha convertido en el estándar de facto, quedando docker swarm relegado a cuestiones más educativas, que relacionadas con entornos productivos.

Docker Community Edition (CE) vs Enterprise Edition (EE)

Al instalar Docker, seguramente habréis visto que hay distintas ediciones. La versión CE es la versión gratuita en la que se basa este artículo y que contiene todo lo necesario para trabajar con contenedores. Sin embargo, Docker inc., la empresa creadora de esta tecnología, ha creado una versión de pago EE. Esta proporciona mayor seguridad y algunas utilidades para gestionar imágenes y desplegar mediante orquestadores.

¿Qué es Docker Hub?

Docker Hub es un repositorio de imágenes para Docker, en él podemos encontrar gran cantidad de imágenes con el software más popular listo para ser ejecutado. Sería similar a un conjunto de máquinas virtuales ya listas, que nosotros en virtual box bajaríamos e importaríamos.

Pero en este caso, como ya se ha comentado, no es necesario que a todo software le acompañe un sistema operativo, sino que podemos tener imágenes con un programa como nginx o MySQL. Haciendo un símil, Docker Hub es a las imágenes lo que GitHub al código fuente.

Novedades sobre Docker

La plataforma está ampliando su popular aplicación Docker Desktop para que se integre con una gama más amplia de herramientas para desarrolladores, además de proporcionar soporte nativo para los desarrolladores que trabajan en estaciones de trabajo Linux.

Anunciado el pasado mes de mayo durante la DockerCon, Docker Extensions se lanza con 14 integraciones de socios: Ambassador, Anchore, AquaSec, EverX, JFrog, Layer5.io, Okteto, Portainer, Red Hat, Snyk, SUSE/Rancher, Tailscale, Uffizzi y VMware.

Estos socios de lanzamiento se pueden agrupar en tres grupos principales: simplificación de la implementación de  Kubernetes (VMware Tanzu, Okteto, Portainer, Red Hat, Rancher), cadena de suministro de software seguro (Anchore, AqueSec, JFrog, Snyk), y apoyo a los entornos de desarrollo híbridos (Ambassador, Tailscale, Layer5, Uffizzi).

La comunidad más amplia de Docker también podrá impulsar una mayor gama de extensiones en el futuro utilizando el nuevo SDK de Docker Extensions.

Conclusión

Por tanto, como podemos ver, esta tecnología aporta magníficas posibilidades y se está convirtiendo en casi un estándar para el despliegue de aplicaciones de todo tipo. Y su uso junto con Kubernets los hace casi perfecto.

La empresa, Docker Inc., desarrolla el trabajo de la comunidad Docker, lo hace más seguro y comparte estos avances con el resto de la comunidad. También respalda las tecnologías mejoradas y reforzadas para clientes empresariales.

Además, usted podrá utilizar los contenedores como máquinas virtuales muy livianas y modulares, y obtendrá tal flexibilidad que podrá crearlos, implementarlos, copiarlos y pasarlos de un entorno a otro.

// ¿Quieres implementar Docker en tu empresa?

¡Reúnete con nuestros expertos!

Author

Sandra Ciruelos

Leave a comment

Tu dirección de correo electrónico no será publicada.