Saltar al contenido

Docker que es y como funciona

docker que es

¿Docker que es? Sabemos que cada programa o aplicación tiene unas necesidades, una utiliza java, otra utiliza librerías otra utiliza un sistema operativo y así con todas. Además los desarrolladores de aplicaciones cuando están realizando pruebas puede ser que les aparezca un pantallazos azules y a no ser que estés trabajando de manera virtual, esto puede producir problemas, bien una vez puestos en situación, empezamos con que es un Docker.

¿Qué es Docker?

Docker es una plataforma de software de código abierto para crear, desplegar y gestionar contenedores de aplicaciones virtualizados en un sistema operativo (SO) común, con un ecosistema de herramientas aliadas. El software que aloja los contenedores se llama Docker Engine.

Docker proporciona una forma de ejecutar aplicaciones aisladas de forma segura en un contenedor, empaquetado con todas sus dependencias y bibliotecas. Vamos que Docker es una manera de simplificar la vida a los programadores.

Docker como funciona

Docker empaqueta el software en unidades estandarizadas llamadas contenedores que contienen todo lo que el software necesita para ejecutarse: código, tiempo de ejecución, herramientas del sistema y bibliotecas del sistema. Esto garantiza que siempre se ejecute igual y facilita la colaboración.

La verdadera importancia o lo que mas se destaca del Docker es el aislamiento y la seguridad, ya que gracias a esta combinación permiten ejecutar muchos contenedores simultáneamente en un determinado host. Los contenedores son ligeros porque no necesitan la carga adicional de un hipervisor, sino que se ejecutan directamente en el núcleo de la máquina anfitriona.

Esto significa que puede ejecutar más contenedores en una combinación de hardware determinada que si utilizara máquinas virtuales. Incluso puede ejecutar contenedores Docker dentro de máquinas anfitrionas que son realmente máquinas virtuales.

Docker utiliza las características de aislamiento de recursos del kernel de Linux, como los cgroups y los espacios de nombres del kernel, y un sistema de archivos con capacidad de unión, como OverlayFS y otros, para permitir que se ejecuten «contenedores» independientes dentro de una única instancia de Linux, evitando la sobrecarga de iniciar máquinas virtuales (VM).

La arquitectura de Docker

Docker presenta una arquitectura de tres elementos claves:

  • Una arquitectura cliente-servidor:
    • Docker se ejecuta como una aplicación cliente-servidor con un demonio Docker que es un proceso persistente que administra los contenedores y gestiona las imágenes; gestiona las interfaces de red y también los volúmenes. Se puede interactuar con Docker a través de llamadas a la API REST o a través de la interfaz CLI.
  • El cliente Docker:
    • Una herramienta de línea de comandos que interactúa con Docker (o la API remota) a través de comandos CLI o llamadas REST.
  • Un registro:
    • Almacena las imágenes de Docker para su distribución a los usuarios. El registro público por defecto para Docker se llama Docker Hub.

Docker y la seguridad

Docker tiene varias características de seguridad que deben ser configuradas correctamente para garantizar la seguridad de los contenedores:

  • Espacios de nombres de usuario:
    • Docker permite crear espacios de nombres de usuario, que proporcionan un aislamiento adicional entre el sistema anfitrión y el contenedor.
  • AppArmor:
    • AppArmor es un módulo de seguridad del kernel de Linux que restringe las capacidades de los programas con perfiles por programa. AppArmor puede confinar los contenedores Docker, impidiendo que accedan a archivos y recursos en el host más allá de los permitidos por el perfil.
  • Seccomp:
    • Seccomp le permite filtrar las llamadas al sistema realizadas por los procesos que se ejecutan dentro de un núcleo de Linux utilizando la sintaxis de Berkeley Packet Filter. Esta característica puede limitar las llamadas al sistema que pueden realizar los procesos que se ejecutan dentro de los contenedores, aumentando aún más su seguridad.

Conclusión

Muchas organizaciones utilizan Docker para permitir la flexibilidad en el desarrollo, el despliegue y el escalado del software. Con Docker, las organizaciones ya no tienen que preocuparse por las diferencias entre los entornos de desarrollo y producción. Docker permite a los desarrolladores escribir código en sus portátiles de la misma manera que se ejecutará en cualquier otra máquina Linux.

Docker también acelera el tiempo de desarrollo ya que los desarrolladores pueden compartir fácilmente imágenes de contenedores con los miembros del equipo utilizando un repositorio central como Docker Hub o utilizando un registro privado.

Hasta aquí el artículo, espero haber dejado claro que es un Docker y como funciona, sino ya sabes que puedes dejarme un mensaje o enviarme un correo eletrónico.

Optimized with PageSpeed Ninja