En este tutorial de Docker en español, te guiaremos a través de los primeros pasos para que puedas familiarizarte con esta poderosa herramienta de contenedores. Aprenderás los conceptos básicos de Docker paso a paso y cómo utilizarlo, incluso si eres un principiante. ¡Comencemos!
Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones., que nos permite separar las aplicaciones de su infraestructura para que se pueda enviar software rápidamente.
Con Docker, se puede administrar la infraestructura de la misma forma que se administran las aplicaciones. Al aprovechar las metodologías de Docker para enviar, testear y desplegar códigos rápidamente, se puede reducir significativamente la demora entre escribir código y ejecutarlo en producción.
Docker proporciona la capacidad de empaquetar y ejecutar una aplicación en un entorno poco aislado llamado contenedor. El aislamiento y la seguridad permiten ejecutar muchos contenedores simultáneamente en un host determinado. Los contenedores son ligeros porque no necesitan la carga adicional de un hipervisor, sino que se ejecutan directamente dentro del kernel de la máquina host. Esto significa que se puede ejecutar más contenedores en una combinación de hardware determinada que si se estuviera usando máquinas virtuales. Incluso se pueden ejecutar contenedores Docker en máquinas host que en realidad son máquinas virtuales.
Docker Engine es una aplicación cliente-servidor con estos componentes principales:
El CLI utiliza la Doker REST API para controlar o interactuar con el Docker daemon a través de scripts o comandos directos del CLI. Muchas otras aplicaciones de Docker usan la API y el CLI subyacentes. El daemon crea y gestiona objetos Docker, como imágenes, contenedores, redes y volúmenes.
Docker optimiza el ciclo de vida del desarrollo al permitir que los desarrolladores trabajen en entornos estandarizados utilizando contenedores locales que proporcionan sus aplicaciones y servicios. Los contenedores son excelentes para flujos de trabajo de integración continua y entrega continua (CI / CD).
Consideramos el siguiente escenario de ejemplo:
La plataforma basada en contenedores de Docker permite cargas de trabajo altamente portátiles.
Los contenedores Docker se pueden ejecutar en la computadora portátil local de un desarrollador, en máquinas físicas o virtuales en un centro de datos, en proveedores de la nube o en una combinación de entornos.
La portabilidad de Docker y su naturaleza ligera también facilitan la administración dinámica de cargas de trabajo, amplíando o eliminando aplicaciones y servicios según las necesidades del negocio, casi en tiempo real.
Docker usa una arquitectura cliente-servidor. El cliente Docker habla con el daemon Docker, que hace el trabajo pesado de construir, ejecutar y distribuir sus contenedores Docker. El cliente Docker y el daemon pueden ejecutarse en el mismo sistema, o se puede conectar un cliente Docker a un daemon Docker remoto. El cliente Docker y el daemon se comunican utilizando una API REST, sobre sockets UNIX o una interfaz de red.
El Docker daemon (dockerd) escucha las solicitudes de la API de Docker y gestiona los objetos de Docker, como imágenes, contenedores, redes y volúmenes. Un daemon también puede comunicarse con otros daemons para administrar los servicios de Docker.
El cliente Docker (docker) es la forma principal en que muchos usuarios de Docker interactúan con Docker. Cuando se utilizan comandos como docker run, el cliente envía estos comandos a dockerd, que los lleva a cabo. El comando docker usa la API Docker. El cliente de Docker puede comunicarse con más de un daemon.
Un registro de Docker almacena imágenes de Docker. Docker Hub y Docker Cloud son registros públicos que cualquiera puede usar, y Docker está configurado para buscar imágenes en Docker Hub de manera predeterminada. Incluso podemos ejecutar nuestro propio registro privado.
Cuando se utilizan los comandos docker pull o docker run, las imágenes necesarias se extraen del registro configurado. Cuando se utiliza el comando docker push, la imagen se envía a el registro configurado.
La tienda Docker permite comprar y vender imágenes de Docker o distribuirlas gratis. Por ejemplo, se puede comprar una imagen Docker que contenga una aplicación o servicio de un proveedor de software y usar la imagen para implementar la aplicación en nuestros entornos de prueba, preparación y producción. Podemos actualizar la aplicación tirando de la nueva versión de la imagen y volviendo a desplegar los contenedores.
Una imagen es una plantilla de 'solo lectura' con instrucciones para crear un contenedor Docker. A menudo, una imagen se basa en otra imagen, con alguna personalización adicional. Por ejemplo, se puede compilar una imagen basada en la imagen ubuntu, pero que instala el servidor web Apache y nuestra aplicación, así como los detalles de configuración necesarios para ejecutar nuestra aplicación.
Un contenedor es una instancia ejecutable de una imagen. Se puede crear, iniciar, detener, mover o eliminar un contenedor utilizando la API Docker o el CLI. Se puede conectar un contenedor a una o más redes, adjuntarle almacenamiento o incluso crear una nueva imagen en función de su estado actual.
Por defecto, un contenedor está relativamente bien aislado de otros contenedores y su máquina host. Se puede controlar qué tan aislados están la red, el almacenamiento u otros subsistemas subyacentes de otros contenedores o de la máquina host.
Un contenedor se define por su imagen y por las opciones de configuración que se le proporciona cuando se crea o inicia. Cuando se elimina un contenedor, desaparecen los cambios a su estado que no se almacenan en el almacenamiento persistente.
El siguiente comando ejecuta un contenedor ubuntu, se conecta interactivamente a nuestra sesión de línea de comandos local y ejecuta / bin / bash.
$ docker run -i -t ubuntu /bin/bash
Cuando se ejecuta este comando, sucede lo siguiente (suponiendo que se esté utilizando la configuración de registro predeterminada):
Los servicios permiten escalar contenedores a través de múltiples daemons Docker, que funcionan en conjunto como un swarm con múltiples managers y workers. Cada miembro de un swarm es un Docker daemon, y todos los daemons se comunican usando la API Docker. Un servicio permite definir el estado deseado, como el número de réplicas del servicio que debe estar disponible en un momento dado. De forma predeterminada, el servicio tiene equilibrio de carga en todos los nodos de trabajadores. Es posible que algunos términos no se comprendan por ahora pero se verán en posteriores temas.
Para cualquier instalación de Docker lo primero es registrarse en el Hub de Docker.
Para instalar Docker en Windows hay que dirigirse a su página oficial.
Siga el asistente de instalación para aceptar la licencia, autorizar el instalador y continuar con la instalación. Reiniciaremos el sistema si nos lo pide. Es posible que Docker no se ejecute automáticamente después de su instalación.
Para iniciarlo, buscamos Docker, seleccionamos Docker for Windows en los resultados de búsqueda.
Cuando la ballena en la barra de estado se mantenga estable, Docker estará funcionando y se podrá acceder desde cualquier ventana de terminal.
Si la ballena está oculta en el área de Notificaciones, haríamos clic en la flecha hacia arriba en la barra de tareas para mostrarla.
Si acabamos de instalar la aplicación, también recibiremos un mensaje emergente con los próximos pasos sugeridos. Con esto ya tendríamos instalado Docker en Windows.
Para instalar Docker en Mac hay que dirigirse a la página oficial.
Hacemos doble clic en Docker.dmg para abrir el instalador, luego arrastramos ballena a la carpeta Aplicaciones.
Hacemos doble clic en Docker.app en la carpeta de aplicaciones para iniciar Docker. (En el siguiente ejemplo, la carpeta de aplicaciones está en el modo de vista de "cuadrícula").
Es posible que se nos solicite que autoricemos Docker.app con la contraseña de nuestro sistema después de iniciarlo.
La ballena en la barra de estado superior indica que Docker se está ejecutando y se puede acceder desde una terminal.
Al igual que en Windows si acabamos de instalar la aplicación, también recibiremos un mensaje de éxito con los próximos pasos sugeridos y un enlace a esta documentación.
Con esto ya hemos finalizado la instalación en Mac.
La instalación de Docker en Linux varía según la distribución específica. Asegúrate de consultar la documentación oficial de Docker para obtener instrucciones detalladas sobre cómo instalarlo en tu distribución de Linux.
Podemos comprobar la versión de Docker ejecutando el comando docker --version
y de esta manera nos aseguraremos de tener una versión compatible de Docker
Incluso ejecutando docker info
o docker version
podemos ver aún más detalles sobre la instalación de nuestro Docker:
docker --version
docker info
Para verificar si se ha realizado correctamente la instalación de Docker en tu sistema, puedes seguir los siguientes pasos:
Si la instalación fue exitosa, Docker descargará y ejecutará una imagen llamada "hello-world" que imprimirá un mensaje de saludo. Esto indicará que Docker está configurado y funcionando correctamente.
docker images
Si no has descargado ninguna imagen adicional, solo deberías ver la imagen "hello-world" en la lista. Esto confirma que Docker puede acceder a su registro de imágenes y mostrarlas correctamente.
Si todos estos pasos se completan sin errores y obtienes resultados satisfactorios, significa que la instalación de Docker se realizó correctamente en tu sistema.
En conclusión, hemos cubierto los fundamentos de Docker y te hemos proporcionado los conocimientos necesarios para empezar a utilizar esta tecnología de contenedores. Sin embargo, si deseas profundizar aún más en Docker y aprovechar al máximo todas sus funcionalidades, te invitamos a considerar nuestro curso de Docker.
En nuestro curso de Docker, aprenderás desde los conceptos básicos hasta técnicas avanzadas de contenerización y gestión de aplicaciones. Nuestro equipo de expertos te guiará a través de casos prácticos, ejercicios y proyectos que te ayudarán a fortalecer tus habilidades en Docker y te convertirán en un profesional en el uso de esta poderosa herramienta.
No pierdas la oportunidad de mejorar tus habilidades y destacarte en el mundo del desarrollo y despliegue de aplicaciones con Docker. ¡Inscríbete en nuestro curso ahora mismo y lleva tus conocimientos de Docker al siguiente nivel!
¡Feliz contenerización con Docker!