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 updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascInstala la última versión de Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginPara verificar que la instalación fue exitosa, puedes ejecutar la imagen ‘hello-world’:
sudo docker run hello-worldLos 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.

