Instalación de Docker y Portainer en Linux
No todo debería vivir directamente en tu sistema operativo. Herramientas como SQL Server tienen una huella de recursos pesada, y ejecutarlas en bare-metal significa que esos recursos son consumidos, lo necesites o no. Los contenedores resuelven esto: inicias uno cuando lo necesitas y lo detienes cuando no. Docker es el motor que impulsa este flujo de trabajo, y Portainer es la GUI ligera que lo mantiene manejable sin memorizar una biblioteca de comandos CLI.
Esta descomposición, basada en la serie desarrollo en Linux de Tim Corey, detalla la configuración completa en Ubuntu: registrando el repositorio de apt, configurando el motor, eliminando el requisito de sudo para máquinas personales y desplegando Portainer CE como un contenedor persistente.
Paso 1: Agregar el Repositorio apt de Docker
[3:10 - 6:00] Antes de que Docker pueda ser instalado a través de apt, necesitas registrar la fuente del paquete de Docker y darle a tu sistema una razón para confiar en él. Docker proporciona un solo bloque copiable de comandos que maneja todo esto en una sola pegada. Dirígete a docs.docker.com, navega a la sección de Instalación, luego selecciona Ubuntu. Los comandos bajo "Instalar usando el repositorio apt" son lo que deseas.
Ese bloque realiza varias operaciones en secuencia: instala las herramientas de certificado requeridas, descarga la clave GPG oficial de Docker, ajusta sus permisos y escribe la dirección del repositorio en tu lista de fuentes apt. Ejecuta todo el bloque a la vez copiándolo desde la documentación y pegándolo en una terminal con Ctrl+Shift+V.
Un punto importante a enfatizar: no agregues ciegamente nuevas fuentes de paquetes. Verifica que confías en la fuente antes de instalar su certificado. Docker es reputado y vale la pena confiar en él, pero el principio se aplica a cada fuente que agregas. Este enfoque es en realidad más estricto que lo que hacen muchos gestores de paquetes por defecto, lo cual es una característica, no una complicación.
Paso 2: Instalar Docker Engine
[6:00 - 7:10] Con el repositorio registrado, instalar Docker es un solo comando apt:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Confirma cuando se te pida, y apt maneja la descarga e instalación. Docker está configurado para iniciarse automáticamente al arrancar, por lo que se ejecutará en el fondo después de cada reinicio sin pasos adicionales.
Para confirmar que todo funciona, ejecuta el contenedor hello-world:
sudo docker run hello-world
sudo docker run hello-world
Docker descarga la imagen, la ejecuta y imprime un mensaje de confirmación. Ese resultado significa que tu instalación está funcionando. El contenedor hello-world está diseñado para ejecutarse una vez y salir; existe únicamente para verificar que el motor está respondiendo.
Paso 3: Ejecutar Docker Sin sudo (Solo Máquinas Personales)
[7:45 - 10:30] Por defecto, los comandos de Docker requieren sudo porque manejar contenedores es una operación privilegiada. En un servidor compartido o máquina de producción, deja esto tal cual. Para una máquina de desarrollo personal que controlas solo, añadirte al grupo docker elimina el prefijo:
sudo usermod -aG docker $USER
sudo usermod -aG docker $USER
-aG añade la cuenta actual a él. Las mayúsculas importan: $USER debe estar en mayúsculas. El cambio no entra en vigor hasta que cierres sesión y vuelvas a iniciar sesión; un reinicio completo del sistema es a menudo más confiable que un simple cierre de sesión para que la membresía del grupo se aplique correctamente. Una vez lo hace, docker run hello-world funciona sin sudo.
Esto es un compromiso de conveniencia, no una mejora de seguridad. Consérvalo solo para máquinas de desarrollo.
Paso 4: Crear un Volumen para Portainer
[11:30 - 12:45] Antes de lanzar Portainer, crea un volumen nombrado para persistir sus datos a través de reinicios y reemplazos de contenedores:
docker volume create portainer_data
docker volume create portainer_data
Los contenedores son efímeros por diseño, y destruir uno borra todo lo almacenado en su interior. Un volumen vive fuera del ciclo de vida del contenedor en una ruta gestionada por Docker, por lo que la configuración de Portainer sobrevive incluso si lo destruyes y reconstruyes.
Paso 5: Ejecutar el Contenedor de Portainer
[12:45 - 14:10] Portainer CE es en sí mismo un contenedor Docker. El comando de ejecución completo es:
docker run -d -p 9000:9000 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
docker run -d -p 9000:9000 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
Desglose: -d ejecuta el contenedor en segundo plano para que permanezca en el fondo. -p 9000:9000 expone el puerto 9000 del host y lo enruta a la dirección interna correspondiente dentro del contenedor. El primer -v monta el socket de Docker, dando a Portainer visibilidad y control sobre tus otros contenedores e imágenes. Conectar el socket de esta manera es lo que permite que la GUI lea y gestione todo tu entorno Docker. El segundo -v enlaza el volumen que acabas de crear a /data dentro del contenedor, persistiendo su estado.
Extraer de portainer/portainer-ce (Edición Comunitaria). El sitio web de portainer.io comienza con la versión Enterprise de pago, pero CE es gratuita y completamente capaz para uso local y personal.
Navegando la Interfaz de Portainer
[14:10 - 17:30] Una vez que el contenedor comienza, abre un navegador y ve a http://localhost:9000. Portainer te pide que crees una contraseña de administrador en el primer acceso; debe tener al menos 12 caracteres. Después de iniciar sesión, haz clic a través del asistente de configuración rápida sin agregar entornos adicionales, luego selecciona el entorno local desde el panel de control.
La vista de inicio muestra un resumen: imágenes descargadas, contenedores presentes, redes configuradas y volúmenes en uso. Al hacer clic en cada sección tienes control total. Bajo Imágenes, verás hello-world y la imagen de Portainer CE de las dos extracciones realizadas durante la configuración. En Contenedores, ambas ejecuciones de hello-world aparecen en estado detenido junto a Portainer mismo, que está ejecutándose activamente.
Desde el panel de Contenedores puedes iniciar, detener o eliminar cualquier entrada. Seleccionar un contenedor y hacer clic en Logs muestra su salida. Las entradas de hello-world muestran el texto de saludo familiar de las dos veces que se ejecutó. Reiniciar un contenedor y verificar sus registros confirma que la salida nueva se añade debajo de la primera.
Los volúmenes se enumeran con sus rutas de montaje. La entrada portainer_data muestra su ubicación bajo /var/lib/docker/volumes/, donde el motor almacena todos los datos de volumen nombrados en disco.
¿Por qué Portainer en Lugar de Docker Desktop?
[17:30 - 18:10] Docker Desktop se envía con una GUI pero lleva una sobrecarga significativa, lo que importa en una máquina de desarrollo Linux donde deseas que los recursos del sistema estén disponibles para tu carga de trabajo real. Portainer CE se ejecuta como un contenedor en sí mismo y consume mucho menos memoria y CPU. Cubre las necesidades prácticas: navegación de imágenes y contenedores, lectura de registros, gestión de volúmenes, inicio y detención de servicios, todo sin el peso.
Qué viene a continuación
[17:50 - 18:30] Con Docker y Portainer en su lugar, el siguiente paso en la serie es ejecutar SQL Server como un contenedor. Un solo comando docker run extrae la imagen e inicia una instancia. Desde el panel de contenedores de Portainer puedes detenerlo cuando tu sesión termina y reiniciarlo cuando lo necesites nuevamente. Este patrón se aplica igualmente a Redis y otras herramientas de infraestructura que son costosas de ejecutar continuamente pero directas de contenerización.
Conclusión
[18:30 - end] Para resumir: registra el repositorio apt de Docker con su clave GPG, instala el motor a través de apt, añade opcionalmente a tu usuario al grupo docker en máquinas personales, crea un volumen nombrado para Portainer y ejecuta el contenedor portainer/portainer-ce mapeado al puerto 9000. Desde ese punto, localhost:9000 te proporciona una interfaz gráfica que cubre el trabajo diario de gestión de contenedores en Linux sin tocar la CLI para tareas rutinarias.
Mira el video completo en el canal de YouTube de Tim Casey para seguir la instalación en una máquina en vivo.
