Día 17 - Docker en el Campo de Batalla 2 - Instalación


Querido diario:

Día decimoséptimo en las trincheras tecnológicas. La teoría quedó atrás, y ahora los reclutas están listos para empuñar sus armas. Ayer estudiamos la estrategia y aprendimos qué son los contenedores, cómo se diferencian de las máquinas virtuales y por qué Docker es el arma predilecta en la guerra del despliegue ágil. Hoy, finalmente, es momento de marchar hacia la práctica: instalar Docker y lanzar nuestro primer contenedor.

El enemigo la complejidad y el caos en los entornos de desarrollo se fortalece con la ineficiencia. Pero hoy daremos un paso más en nuestra cruzada por la automatización y el orden.

Instalando Docker en la Máquina del Soldado

Antes de lanzar nuestros primeros contenedores, debemos equiparnos correctamente. La instalación de Docker varía dependiendo del sistema operativo que estemos usando. A continuación, detallo cómo hacerlo en GNU/Linux (Ubuntu/Debian), aunque el proceso es similar en otras distribuciones.

Antes de instalar Docker, debemos asegurarnos de que nuestro sistema está actualizado y listo para recibir los paquetes necesarios. Ejecutamos:

sudo apt-get update && sudo apt-get upgrade -y

Luego, instalamos los paquetes requeridos para que Docker pueda añadirse correctamente desde su repositorio oficial:

sudo apt-get install -y ca-certificates curl gnupg

Docker no viene en los repositorios estándar de Ubuntu, por lo que debemos añadir la clave GPG y el repositorio oficial:

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null

sudo chmod a+r /etc/apt/keyrings/docker.asc

Ahora agregamos el repositorio:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Actualizamos los paquetes para que el sistema reconozca el nuevo repositorio:

sudo apt-get update

Finalmente, instalamos Docker y sus componentes esenciales:

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verificamos que Docker se haya instalado correctamente y que el servicio esté activo:

sudo systemctl status docker

Si el servicio no está corriendo, lo iniciamos con:

sudo systemctl start docker

Para asegurarnos de que Docker se ejecute automáticamente al encender el sistema:

sudo systemctl enable docker

Con esto, la base de operaciones está lista. Ahora, podemos lanzar nuestra primera misión: levantar un contenedor.

Ahora que Docker está instalado, es hora de probarlo con una imagen de prueba. La más utilizada es hello-world, una imagen mínima diseñada para confirmar que Docker funciona correctamente.

Para ejecutarla, simplemente escribimos:

sudo docker run hello-world

Si todo está en orden, deberíamos ver un mensaje en la terminal que confirma que Docker ha descargado la imagen y la ha ejecutado correctamente.

Este pequeño contenedor solo imprime un mensaje y luego se detiene, pero ha servido como nuestra primera prueba de fuego.

Ahora vamos un paso más allá y lanzamos un contenedor con Ubuntu en modo interactivo:

sudo docker run -it ubuntu bash

Aquí estamos ordenando a Docker que:

  • run: Cree y ejecute un nuevo contenedor.
  • -it: Permita la interacción con el contenedor.
  • ubuntu: Use la imagen de Ubuntu como base.
  • bash: Ejecute un shell dentro del contenedor.

Esto abrirá una terminal dentro del contenedor de Ubuntu. Desde aquí, podemos ejecutar comandos como si estuviéramos en una instalación nueva del sistema operativo.

Para salir del contenedor, simplemente escribimos:

exit

Hoy los reclutas han pasado de la teoría a la acción. Ya saben cómo instalar Docker y cómo ejecutar sus primeros contenedores. Pero esto es solo el inicio. Mañana, aprenderemos cómo gestionar imágenes, crear contenedores personalizados y entender el ciclo de vida de un contenedor.

La guerra sigue, y nuestros reclutas están listos para la siguiente batalla. ¡Adelante, soldados digitales!

Comentarios