En este artículo veremos qué componentes tiene Docker.

  • El motor de Docker, compuesto por el cliente y el servidor Docker.
  • Las imágenes de Docker
  • Los registros
  • Los contenedores

El motor de Docker

Básicamente, Docker es una aplicación cliente-servidor, y pueden trabajar ambos en la misma máquina, o en distintos servidores. Además, también existe una API REST para comunicarse con la parte servidor de Docker, aparte de la aplicación cliente, con lo que no tendremos problema alguno para trabajar con Docker.

Imágenes

Las imágenes de Docker es el código fuente de nuestros contenedores, es una colección ordenada de comandos y parámetros para ejecutarlos en el momento de arrancar el contenedor, para, por ejemplo, abrir con puerto, o ejecutar un comando.

Registros

Las imágenes que se crean, se guardan en registros, y existen dos tipos: públicos y privados, como podeis ver en la misma web de Docker.

Contenedores

Es el proceso o conjunto de procesos que se lanzan desde una imagen. Un contenedor puede ser creado, inicializado, parado, vuelto a ejecutar y destruido, a diferencia del resto de componentes de Docker.

containersLos contenedores reciben este nombre porque recuerdan a los contenedores que se utilizan en el transporte (todos hemos visto los contenedores de transporte marítimo, ¿verdad?). Así, podemos hacer un contenedor con una base de datos, una web, o cualquier otro servicio que pensemos, y podemos llevarlo de un sitio (servidor) a otro, sin problemas. De esta manera, el desarrollador enviará su imagen al departamento de testeo, o de puesta en producción desde su máquina local, sin que se pierda nada por el camino, a la par que todos los actores implicados en un desarrollo se aseguran de tener el mismo entorno en cada momento.

Empezamos una serie de artículos hoy en la que explicamos qué es un contenedor Docker, para qué sirve, cómo lo usaremos y por qué vamos a trabajar con él.

El contenedor Docker es una tecnología que nos permite empaquetar y desplegar las aplicaciones que desarrollemos de una forma eficaz, rápida, eficiente y segura. ¿Cómo lo hace posible? Vamos a verlo.
Las aplicaciones que desarrollamos normalmente necesitan bibliotecas y dependencias que no siempre nos llevamos de un servidor a otro. Docker empaqueta aplicación, dependencias y bibliotecas, para poder llevarnos todo de un servidor a otro. Gracias a Docker, ya no oiremos más “en mi local funciona” mientras vemos que en producción la aplicación no va.

Por otra parte, con contenedores de Docker utilizamos menos recursos porque no nos llevamos el sistema operativo completo, sólo lo necesario para la aplicación desarrollada, por lo que es más eficiente que una VM. Eso sí, debemos tener en cuenta que cada VM emula el hardware que necesita, cosa que no pueden hacer los contenedores Docker. Tenemos que tener en cuenta esta característica, ya que los contenedores sólo proporcionan un entorno de ejecución correcto para la aplicación. Por otra parte, como un contenedor no lleva todo el sistema operativo consigo, podemos tener varios contenedores en un mismo servidor, y además, ¡compartiendo todas mismo kernel!.

Por lo tanto, los contenedores están aislados, aunque comparten sistema operativo, kernel, y si corresponden, los mismos binarios y bibliotecas.

Y aquí dejamos la primera píldora sobre contenedores Docker. En unos días, más.

Logo-DockerEn desarrollo, estamos acostumbrados a que el despliegue de una aplicación en producción sea un dolor de muelas, y no nos gusta llegar al momento “paso a producción”, por la de posibles errores de última hora que nos encontramos. ¿Cuántas veces nos hemos encontrado que el desarrollo realizado en un servidor y entorno determinado, no funciona en otro? ¿Cuántas veces hemos dicho la temida frase “en mi local (o servidor) funciona”?. Solucionar este tipo de problemas siempre ha sido un añadido en todo proyecto que nunca se sabe calcular, hasta ahora, ya que gracias a herramientas como Docker, podemos realizar despliegues de desarrollos independientemente del entorno en el que se despliegan. ¿Cómo logramos hacerlo? ¿Realmente interesa trabajar con una herramienta como Docker? Para explicarlo, vamos a publicar unas entradas, en las que iremos viendo qué es y para qué sirve, y cómo funciona Docker. ¡Esperamos que os gusten!