Como instalar Docker en un VPS

Docker es una herramienta que permite a los desarrolladores crear, ejecutar, verificar y compartir proyectos dentro de paquetes llamados contenedores Docker.

Además del código; Muchas aplicaciones y sitios web requieren elementos adicionales como bases de datos, archivos de configuración, bibliotecas de tiempo de ejecución o software de terceros para funcionar correctamente.

Con Docker; en lugar de tener que instalar y configurar la aplicación en sí y luego cada dependencia para cada implementación; un usuario final puede simplemente extraer y ejecutar un contenedor Docker y estar listo para comenzar.

Docker funciona en arquitecturas de CPU x86, x64 y ARM en macOS, Linux y Windows. Ejecutar aplicaciones desde contenedores Docker significa que no es necesario dedicar tiempo ni recursos a crear, optimizar y mantener versiones para todas las combinaciones posibles de hardware y software.

Las aplicaciones se ejecutarán de la misma manera en cualquier dispositivo, independientemente de las diferencias de arquitectura, sistema operativo o configuración entre la máquina cliente y la computadora original utilizada para escribir y probar el código.

Contenedores vs. máquinas virtuales

Hay una serie de diferencias clave entre las maquinas virtuales y los contenedores Docker. Veamos:

Maquinas virtuales

  • Las máquinas virtuales emulan hardware físico, lo que permite ejecutar múltiples sistemas operativos en una sola máquina física.
  • Cada VM incluye un sistema operativo completo, junto con la aplicación, los archivos binarios y las bibliotecas, generando una mayor sobrecarga.
  • Las máquinas virtuales requieren un hipervisor para administrarlas, lo que genera cierta sobrecarga de rendimiento.
  • Ofrecen un fuerte aislamiento entre aplicaciones ya que cada VM tiene su propio kernel y espacio de memoria.

Contenedores

  • Los contenedores virtualizan el sistema operativo en lugar de emular hardware, lo que permite que se ejecuten múltiples aplicaciones en el mismo núcleo del sistema operativo.
  • El hardware de la máquina host se puede pasar a los contenedores para habilitar funciones como la aceleración de GPU, pero el hardware debe existir físicamente para hacerlo.
  • Los contenedores empaquetan una aplicación y todas sus dependencias en una sola imagen, que es liviana y portátil.
  • Los contenedores comparten el kernel del sistema operativo host, lo que genera menores gastos generales y tiempos de inicio más rápidos en comparación con las máquinas virtuales.
  • Son muy eficientes y permiten una mayor densidad de aplicaciones en un solo host.
  • Los contenedores proporcionan menos aislamiento en comparación con las máquinas virtuales, ya que comparten el mismo kernel.
  • Docker proporciona control de versiones para sus contenedores que permite a los usuarios rastrear versiones, revertir versiones y administrar diferencias entre versiones.

El proceso de instalación puede diferir ligeramente según el sistema operativo del VPS, en este caso veremos como hacerlo en Ubuntu 22.04:

Instalando Docker

Abre una terminal con privilegios de root y ejecuta estos comandos para actualizar los paquetes existentes y configurar el repositorio de Docker:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Instala la última versión de Docker:

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

Para verificar que la instalación fue exitosa, puedes ejecutar la imagen ‘hello-world’:

sudo docker run hello-world

Los repositorios como dockerhub y linuxserver.io albergan una gran variedad de imágenes de Docker propias y mantenidas por la comunidad que se pueden descargar, instalar y usar de forma gratuita, y son un excelente lugar para ver lo que es posible hacer.