Docker es una herramienta diseñada para facilitar la creación, despliegue y ejecución de aplicaciones mediante el uso de contenedores.
[scriptless]
Los contenedores permiten a un desarrollador empaquetar una aplicación con todas las partes que necesita, como bibliotecas y otras dependencias, y desplegarla como un solo paquete.
Al hacerlo, gracias al contenedor, el desarrollador puede estar seguro de que la aplicación se ejecutará en cualquier otra máquina Linux, independientemente de cualquier configuración personalizada que pueda tener esa máquina y que podría diferir de la máquina utilizada para escribir y probar el código.
En cierto modo, Docker es un poco como una máquina virtual. Pero a diferencia de una máquina virtual, en lugar de crear todo un sistema operativo virtual, Docker permite que las aplicaciones utilicen el mismo kernel de Linux que el sistema en el que se ejecutan y sólo requiere que las aplicaciones se envíen con cosas que no se estén ejecutando ya en el equipo anfitrión.
Esto proporciona un aumento significativo del rendimiento y reduce el tamaño de la aplicación.
Y lo que es más importante, Docker es de código abierto. Esto significa que cualquiera puede contribuir a Docker y ampliarlo para satisfacer sus propias necesidades si necesita características adicionales que no están disponibles fuera de la caja.
[lwptoc min=»1″ backgroundColor=»»]
¿Para quién es Docker?
Docker es una herramienta diseñada para beneficiar tanto a los desarrolladores como a los administradores de sistemas, por lo que forma parte de muchas cadenas de herramientas DevOps (desarrolladores + operaciones).
Para los desarrolladores, significa que pueden centrarse en la escritura de código sin preocuparse por el sistema en el que finalmente se ejecutará. También les permite obtener una ventaja al utilizar uno de los miles de programas ya diseñados para ejecutarse en un contenedor Docker como parte de su aplicación.
Para el personal de operaciones, Docker proporciona flexibilidad y reduce potencialmente el número de sistemas necesarios debido a su pequeña huella y menor sobrecarga.
Cómo empezar en Docker
Estos son algunos recursos que le ayudarán a empezar a utilizar Docker en su flujo de trabajo. Docker ofrece un tutorial basado en la web con un simulador de línea de comandos con el que puedes probar los comandos básicos de Docker y empezar a entender cómo funciona.
También hay una guía para principiantes de Docker que le presenta algunos comandos básicos y la terminología de los contenedores. También puedes ver el siguiente vídeo para profundizar en el tema:[ads_space space=»5″]
[vc_video link=»https://www.youtube.com/watch?v=CV_Uf3Dq-EU&t=629s»]
Docker y la seguridad
Docker aporta seguridad a las aplicaciones que se ejecutan en un entorno compartido, pero los contenedores por sí mismos no son una alternativa a la adopción de medidas de seguridad adecuadas.
Dan Walsh, líder en seguridad informática más conocido por su trabajo en SELinux, ofrece su perspectiva sobre la importancia de asegurarse de que los contenedores Docker sean seguros. También proporciona un desglose detallado de las características de seguridad que existen actualmente en Docker, y cómo funcionan.
Entender los contenedores
Se puede pensar que los contenedores necesitan tres categorías de software:
- Constructor: tecnología utilizada para construir un contenedor.
- Motor: tecnología utilizada para ejecutar un contenedor.
- Orquestación: tecnología utilizada para gestionar muchos contenedores.
Uno de los atractivos del uso de contenedores es su capacidad para morir con elegancia y reaparecer cuando se le pida.
Tanto si la desaparición de un contenedor se debe a un fallo como si simplemente ya no se necesita cuando el tráfico del servidor es bajo, los contenedores son baratos de arrancar y están diseñados para aparecer y desaparecer sin problemas.
Dado que los contenedores están pensados para ser efímeros y para generar nuevas instancias con la frecuencia necesaria, se espera que la supervisión y la gestión de los mismos no sean realizadas por un humano en tiempo real, sino que estén automatizadas.
Los contenedores de Linux han facilitado un cambio masivo en la computación de alta disponibilidad, y hay muchos conjuntos de herramientas que ayudan a ejecutar servicios (o incluso todo el sistema operativo) en contenedores.
Docker es una opción entre muchas otras, definidas por la Open Container Initiative (OCI), una organización de estándares de la industria destinada a fomentar la innovación y evitar el peligro de la dependencia de un proveedor. Gracias a la OCI, puedes elegir una cadena de herramientas de contenedores, como Docker, OKD, Podman, rkt, OpenShift y otras.
Si decides ejecutar servicios en contenedores, probablemente necesites un software diseñado para alojar y gestionar esos contenedores. Esto se conoce ampliamente como orquestación de contenedores. Kubernetes proporciona orquestación de contenedores para una variedad de tiempos de ejecución de contenedores.
[scriptless]