Primeros Pasos Con Docker En Raspberry Pi (Guía Completa)

Noté que cada vez más proyectos tienen la opción de instalar las principales partes del software con Docker, pero supongo que no siempre está claro para todos de qué estamos hablando. Yo era un administrador de sistemas, y los contenedores no se usaban en absoluto cuando comencé, así que eso también es bastante reciente. Si usted esta un poco perdido con esta tecnología, está en el lugar perfecto para aprender todo lo que necesita saber sobre Docker.

Docker es un software que permite que usted pueda instalar y ejecutar software en contenedores separados, virtualizando el sistema operativo en ejecución. Los principales beneficios de Docker son la facilidad de implementación, la seguridad y la escalabilidad.

Empezaré con una breve introducción a Docker, y luego le mostraré cómo instalarlo y usarlo en una Raspberry Pi. Usaré Raspberry Pi OS, pero la idea es la misma con cualquier sistema operativo.

Si estás buscando progresar rápidamente en Raspberry Pi, puedes consultar mi libro electrónico aquí. Es un reto de 30 días en el que aprendes una cosa nueva cada día hasta que te conviertes en un experto en Raspberry Pi. El primer tercio del libro te enseña lo básico, pero los siguientes capítulos incluyen proyectos que puedes intentar por tu cuenta.

¿Qué es Docker?

En palabras sencillas, Docker es como la próxima generación del gestor de paquetes de Debian (APT).

En lugar de instalar cada pieza de software individualmente en su sistema, con muchas dependencias y dolores de cabeza regulares cuando instala una aplicación compleja, Docker creará un contenedor, un sub-sistema independiente en su sistema, con todo lo necesario para la aplicación.

El desarrollador básicamente creará una imagen de su propio sistema, incluyendo todo lo necesario para que la aplicación principal funcione, y la compartirá con el usuario final.

El usuario descargará la imagen, y creará un contenedor a partir de ella, asegurando que todo estará instalado y funcionará como lo espera el desarrollador.

Fuente: Docker.com

Voy a mostrarle un ejemplo concreto al final de este artículo, pero básicamente, cuando quiere crear un proyecto en su Raspberry que requiere varias aplicaciones, puede tener algunos problemas de conflicto o pasar tiempo configurando todo. Si un desarrollador ya hizo este proyecto y compartió su contenedor, simplemente puede descargarlo y hacerlo funcionar en su sistema casi instantáneamente.

Al menos esa es la promesa. Veremos que no siempre es tan sencillo, pero usted entiende la idea.
Hice una encuesta en mi canal de YouTube, y la mayoría de ustedes todavía está utilizando la forma tradicional, pero vamos a discutir cómo instalar y utilizar Docker por primera vez.

Espera, ¡tengo algunas recomendaciones para ti!

Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.

Una caja silenciosa y práctica Un SSD de alto rendimiento para potenciar tu Pi Una pantalla genial para liberar el televisor Un teclado dedicado con touchpad

Lista de equipo

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Aquí está el hardware recomendado para seguir este tutorial:

  • Una Raspberry Pi 4: O al menos el modelo más potente que pueda tener. Docker está optimizado para la comodidad, no necesariamente para la velocidad. Se recomienda un modelo de Raspberry Pi decente, con suficiente RAM.
  • Una tarjeta SD rápida: Esta es mi favorita. Por la misma razón, no use una tarjeta SD lenta y poco fiable para un servidor. Una memoria USB también es una opción (esta por ejemplo).

Y como en la mayoría de los proyectos, agregar estos accesorios opcionales puede facilitarle la vida:

  • Un buen teclado y ratón: Yo uso este, pero hay otras opciones disponibles (He probado la mayoría de ellos en esta comparativa).
  • Un monitor decente: siempre es más fácil seguir las instrucciones cuando puede ver lo que está pasando con la Raspberry Pi, en lugar de cambiar constantemente de su ordenador a la Pi.
  • La mejor carcasa para Raspberry Pi: es la que uso todo el tiempo. Mantiene mi Pi protegida y fresca, es imprescindible (probada aquí, en inglés).

¿Cómo instalar Docker en Raspberry Pi?

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

En resumen, Docker se puede instalar en Raspberry Pi con solo dos comandos:
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Esto descargará y ejecutará el script de instalación en su dispositivo, y permitirá que su usuario actual use Docker.

Pero permitame retroceder un poco y explicar todos los pasos en más detalle. En efecto, antes de usar Docker en su Raspberry Pi, hay algunas cosas que instalar primero. Docker funciona como un servicio, por lo que necesitamos instalarlo antes de crear cualquier contenedor.

Instale un sistema operativo

Docker puede funcionar en la mayoría de las distribuciones de Linux.

En su sitio web, mencionan que Ubuntu, Debian y Fedora son oficialmente compatibles, por lo que supongo que debería funcionar en cualquier variante de estos sistemas. Arch Linux también tiene una versión experimental disponible.

Estoy probando este tutorial para usted en un Raspberry Pi 4 con Raspberry Pi OS Bullseye, pero deberían ser los mismos pasos para cualquier sistema que use.

Entonces, si aún no lo ha hecho, siga uno de estos tutoriales para tener su sistema listo:

Luego, asegúrese de que su sistema esté conectado a Internet y ajuste la configuración básica si es necesario (distribución del teclado, idioma, etc.).

Como siempre, recomiendo configurar SSH en la Raspberry Pi y conectarse a ella desde su computadora. De esta manera, puede simplemente copiar y pegar todos los comandos que le proporcionaré aquí.

Realice las actualizaciones del sistema

Como en cualquier tipo de proyecto, el primer paso es aplicar las actualizaciones del sistema para evitar cualquier problema o conflicto.

En Raspberry Pi OS y en las distribuciones basadas en Debian (Ubuntu, etc.) puede hacer esto con estos comandos:
sudo apt update
sudo apt upgrade -y

Después de unos minutos, su sistema estará actualizado y listo para instalar Docker.
Si hubo muchas actualizaciones de paquetes, podría ser buena idea reiniciar el sistema:
sudo reboot

Instale Docker en Raspberry Pi

Instalar Docker en un Raspberry Pi es sencillo. Existe un script simple para ejecutar, que detectará su sistema y arquitectura, e instalará todo para usted.
Aquí está el comando:

curl -sSL https://get.docker.com | sh

Verá el progreso de la instalación en su pantalla y debería terminar con algo así:

En teoría, no estamos usando root en Raspberry Pi OS, así que hay un paso extra para permitirnos usar Docker directamente (sin sudo).

Ejecutar comandos Docker con su usuario actual

Lo único que hice para permitir que el usuario principal use Docker sin sudo fue agregarlo al grupo docker. No sé exactamente por qué dan otras instrucciones, pero en mi caso no fue necesario.

Por lo tanto, aquí está el comando para agregar el usuario actual al grupo docker:
sudo usermod -aG docker $USER

Necesita cerrar sesión e iniciarla nuevamente para aplicar los cambios. Por lo tanto, dependiendo de su situación, cierre su sesión GUI, salga de su sesión SSH, o simplemente reinicie la Raspberry Pi, y entonces debería poder ejecutar cualquier comando docker sin sudo.

Puede probarlo con:
docker ps

Si funciona, está listo para seguir adelante. Si recibe un mensaje como “Se negó el permiso mientras intentaba conectarse al socket del demonio Docker”, falta algo en su sistema. En este caso, intente seguir sus instrucciones.

Pruebe su configuración de Docker

Una vez que Docker está instalado, podemos comenzar a usarlo directamente. Existe un pequeño contenedor que puede intentar descargar y ejecutar para asegurarse de que todo está funcionando correctamente.
Aquí está el comando:
docker run hello-world

Como puede ver en la captura de pantalla, intenta ejecutar una imagen que no está instalada en su sistema. Docker la descargará primero (“pull”) y luego la ejecutará.
Este es solo un ejemplo tonto que dice “Hola”, pero obtiene la idea, ahora puede comenzar a usar Docker en cualquier máquina.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

¿Cómo usar Docker en Raspberry Pi?

El uso de Docker en Raspberry Pi no es diferente de cualquier otro ordenador, pero si es la primera vez que lo intenta, necesitará algo de orientación.

Una vez que el servicio está instalado, se pueden utilizar un montón de comandos para monitorizar, instalar y ejecutar contenedores de Docker.

Comandos de Docker que necesita conocer

Empecemos con los comandos principales que puede utilizar ahora que Docker está instalado en su sistema:

  • Monitorear los contenedores en ejecución:
    docker ps
  • Mostrar la versión actual de Docker:
    docker version
  • Descargar una nueva imagen:
    docker pull [IMAGE]
  • Ejecutar una imagen (y descargarla si no existe en su sistema local):
    docker run [IMAGE]
  • Buscar una imagen en el repositorio de Docker:
    docker search [X]

    También puede utilizar la versión web de este motor de búsqueda, que será más fácil de usar y le dará más detalles (aquí está el enlace). Una cosa a tener en cuenta es que algunas imágenes no son compatibles con la arquitectura ARM. En el sitio web, puede filtrarlas, pero no creo que pueda hacerlo con la línea de comandos.
  • Muestre las estadísticas de uso:
    docker stats
  • Mostrar la lista de todos los comandos de Docker:
    docker help

Hay muchos comandos y parámetros, pero básicamente, si sabe cómo instalar, ejecutar y monitorear sus contenedores, debería ser suficiente en la mayoría de los casos.

Tomemos un ejemplo

Ahora que Docker está instalado y funciona correctamente, probablemente pasará a un tutorial específico sobre un proyecto que le interesa (quizás sea Plex, en inglés, Home Assistant, en inglés, o cualquiera de las múltiples guías que tengo en este sitio web).

Pero hagamos un breve repaso antes de intentar algo más complicado.
Supongamos que quiere instalar Nginx (un servidor web) en un contenedor Docker. ¿Cómo lo haría?
Bueno, estos son los pasos que debe seguir una vez que Docker esté instalado:

  • Utilice el sitio web o el comando «search» para comprobar las imágenes correspondientes disponibles:
    docker search nginx
  • Hay muchos resultados, pero el primero suele ser el mejor. Y en el sitio web, se puede ver que el primero es compatible con ARM y ARM64. Así que vamos a instalar y ejecutar con:
    docker run nginx

    En cuanto al ejemplo de hello-world, comprobará si ya está instalado, y si no, lo descargará.
    A continuación, se iniciará el contenedor.
    Puedes utilizar «docker ps» o «docker stats» para comprobar si se está ejecutando.
  • Una cosa que no dije, es que «docker run [X]» iniciará el contenedor en la sesión actual. Si cierra la conexión SSH o el terminal, la aplicación se detendrá.
    Para ejecutarlo en segundo plano, debe utilizar la opción «-d»:
    docker run -d nginx

Eso es todo, a partir de ahí puede empezar a usar su aplicación. Dependiendo de la imagen que pruebes, puede haber pasos adicionales, consulte la documentación correspondiente para más detalles.
Por ejemplo, si abre la página correspondiente para la compilación de Nginx, darán parámetros adicionales y opciones de configuración para su servidor web.

Espero que ahora esté más claro para usted, pero probablemente necesite un poco más de práctica para hacer las cosas aún más claras. Pruebe a seguir un tutorial de Docker para un proyecto de Raspberry Pi después de ello, para asegurarse de que entiende todo mientras aún está fresco.

Si quiere probar un proyecto de Docker para un ejemplo completo, tengo un tutorial sobre cómo instalar Bitwarden en su Raspberry Pi (en inglés). Es un gestor de contraseñas, utilizando un contenedor Docker, por lo que es un ejemplo perfecto (probablemente pueda saltarse la primera mitad del tutorial ya que ya tiene instalado Docker).

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Preguntas frecuentes sobre Docker en Raspberry Pi

Aquí hay algunas preguntas frecuentes sobre Docker en Raspberry Pi que quiero responder en esta guía.

¿Cuántos contenedores puede ejecutar en una Raspberry Pi?

Una Raspberry Pi puede ejecutar varios contenedores Docker al mismo tiempo, pero no hay un límite estricto para ello. Todo depende de las aplicaciones instaladas, el número de usuarios de estas aplicaciones, y cómo están optimizadas para esta plataforma.

También depende mucho del modelo de Raspberry Pi que utilice y del rendimiento que esté dispuesto a aceptar. No tengo una gran respuesta para esta pregunta, pero definitivamente puede ejecutar varios servicios en diferentes contenedores simultáneamente en una Raspberry Pi y ver cómo va.

¿Cómo desinstalar Docker del Raspberry Pi?

Aunque Docker se instaló a través de un script que hizo todo en segundo plano, no es más que paquetes del sistema instalados con APT. Usted puede ver los paquetes instalados con:
sudo dpkg -l | grep docker
Y desinstalarlos con algo como:
sudo apt remove docker-ce docker-ce-cli

El script también agrega un nuevo archivo en /etc/apt/sources.list.d que puede eliminar si ya no usa Docker:
sudo rm /etc/apt/sources.list.d/docker.list
sudo apt update

¿Dónde se almacenan los archivos de configuración de los contenedores?

La mayoría de los archivos Docker se almacenan bajo /var/lib/docker en su sistema principal. Pero la mejor práctica para editar archivos de configuración es abrir una sesión bash directamente dentro del contenedor. Puede hacerlo con:
docker exec -ti [CONTAINER-ID] /bin/bash

El ID del contenedor se muestra en su pantalla cuando inicia la aplicación con “docker run”. Aquí hay un ejemplo con mi contenedor Nginx:

Desde ahí, son los mismos archivos que con una configuración tradicional de Nginx. Puede leer mi tutorial completo sobre Nginx aquí (en inglés) si desea saber más (incluso si solo es un ejemplo aquí).

Cuando estés preparado, aquí tienes un atajo para ti:

Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.

Publicaciones Similares