Consideraciones previas

Iré directamente a instalaciones y configuraciones, si alguien llega hasta acá sin saber de qué se trata docker, puede aprovechar el gran trabajo de Atareao, del cual he aprendido bastantes cosas.

El sistema operativo elegido es Debian (versión 12 para esta documentación) por ser lo suficientemente estable y universal para que lo tengan la mayoría de los proveedores de servidores, aunque en lo particular elegiría Devuan si pudiese, mi distro de cabecera.

Instalación de docker y docker compose

- Documentación oficial de referencia

Pre-instalación

  • NOTA: salvo cuando se especifique, todos los comandos se ejecutan con root, lo cual en debian se usa ingresando con su -

1. Actualizar sistema e instalar paquetes necesarios:

  • apt update

  • apt install ca-certificates curl

2. Agregar repositorio de docker y sus llaves de autenticación

  • NOTA: la ejecución de los comandos de este punto (el 2) no deberían devolver nada, sólo volver al prompt de la consola, salvo que dé algún error

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

  • curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

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

  • echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

  • apt update

Instalación y prueba

1. Instalación

  • apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. Agregar usuario sin privilegios al grupo docker

  • NOTA: donde dice USERNAME, cambiarlo por el usuario sin privilegios del sistema

  • groupadd docker

  • usermod -aG docker USERNAME

3. Para probar que funciona, cerrar esa sesión de terminal y volver a ingresar con el usuario USERNAME para que tome los cambios y ejecutar el siguiente comando

  • docker run hello-world

Debería devolver un mensaje que finalizó con éxito

Finalización

En este punto ya están el sistema y docker preparados para empezar a levantar los contenedores de base (Nginx Proxy Manager y Portainer) y así tener un entorno cómodo de instalación y manejo de servicios más adelante.