Docker
Docker es una herramienta que permite crear, probar y desplegar aplicaciones rápidamente. La idea detrás de Docker es crear "contenedores" que sean ligeros y portátiles para que las aplicaciones puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo.
Por ejemplo, cada nodo de la red blockchain o servicio/aplicación desarrollada se compilará en una imagen Docker que contiene todas sus dependencias y se despliega en uno de los varios proveedores de infraestructura con Docker disponible.

Además de Docker, utilizamos una herramienta de "orquestación" de contenedores llamada Kubernetes (K8s).
Kubernetes te ayuda a gestionar los contenedores en los que se alojan tus aplicaciones de forma fácil, rápida y escalable. Además, también dispone de monitorización y balanceo de carga. Sobre los servidores virtuales. Más información.
#
Docker EngineDocker Engine es una tecnología de contenedores de código abierto para construir y contenerizar sus aplicaciones. Docker Engine actúa como una aplicación cliente-servidor con:
- Un servidor con un proceso daemon de larga duración dockerd.
- APIs que especifican interfaces que los programas pueden utilizar para hablar con el daemon Docker y darle instrucciones.
- Una interfaz de línea de comandos (CLI) docker.
La CLI utiliza Docker APIs para controlar o interactuar con el daemon Docker a través de scripts o comandos directos de la CLI. Muchas otras aplicaciones de Docker utilizan la API y la CLI subyacentes. El demonio crea y gestiona objetos Docker, como imágenes, contenedores, redes y volúmenes.
Para más detalles, véase Arquitectura Docker.
Para tener una configuración inicial de Docker, necesitamos establecer tres cosas principales:
- Dockerfile: Define los pasos necesarios para crear la imagen y ejecutarla. Cada instrucción en un Dockerfile crea una capa en la imagen.
- Imagen: Una imagen es una plantilla de sólo lectura con instrucciones para crear un contenedor Docker.
- Contenedor: Un contenedor es una instancia ejecutable de una imagen. Puedes crear, iniciar, detener, mover o eliminar un contenedor utilizando la API de Docker o la CLI.
#
Docker ComposeCompose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedor. Con Compose, usted utiliza un archivo YAML para configurar los servicios de su aplicación. Luego, con un solo comando, creas e inicias todos los servicios desde tu configuración.
El uso de Compose es básicamente un proceso de tres pasos:
- Define el entorno de tu aplicación con un Dockerfile para que pueda ser reproducido en cualquier lugar.
- Define los servicios que componen tu app en docker-compose.yml para que puedan ejecutarse juntos en un entorno aislado.
- Ejecuta docker-compose y Compose inicia y ejecuta toda tu app.
Un docker-compose.yml tiene el siguiente aspecto:
#
Cómo IniciarPara iniciar nuestro primer proyecto Docker, vamos a crear la configuración necesaria para que arranque y diga Hola mundo, somos EOS Costa Rica 🦋
. En primer lugar, necesitamos la configuración principal, así que sigue los siguientes pasos para obtenerla.
#
Estructura del proyecto#
Desglose del código#
Dockerfile#
.dockerignorenode_modules
#
.gitignorenode_modules
#
src/index.js#
package.json#
Comandos#
Construir Imagendocker build -t eoscostarica/helloworld:1.0 .
#
Correr contenedordocker run -p 5000:8080 <image-id>
#
Docker Compose Example#
docker-compose.yml#
Ejecutar Multiples Contenedores#
Comandodocker-compose up