¡Buenas a todos! En este tutorial, vamos a explicar cómo instalar Docker en nuestra Raspberry Pi, Orange Pi, Linux, y luego cómo instalar diferentes contenedores Docker para servicios como Home Assistant, MQTT, entre otros. Dividiremos el proceso en varias partes para que sea más fácil de seguir y menos pesado. Empezaremos desde 0 con una imagen de Raspbian / Debian / Ubuntu limpia, o en su defecto si usamos una Orangepi seria Armbian.
Si tenemos una versión Debian Buster deberemos teclear lo siguiente en nuestra terminal SSH:
1 |
sudo curl -fsSL get.docker.com | sed 's/buster/stretch/' | sh |
Si tenemos una versión normal de Debian o Ubuntu teclearíamos lo siguiente:
1 |
sudo curl -sSL https://get.docker.com/ | sh |
Esperaríamos a que terminara todo el proceso. Para saber si ha ido todo bien podremos poner este comando y sabríamos que versión de docker ha sido instalada:
1 |
docker -v |
A continuación una vez instalado la base de docker, procederemos a añadir nuestro usuario como administrador de los docker:
1 |
sudo usermod -aG docker usuarioquequeramos |
El paso siguiente es opcional pero recomendable ya que en el futuro podremos usarlo para hacer nuestra composición de los docker mas rápidos:
1 |
sudo apt install docker-compose |
Una vez realizado el paso anterior procederemos a instalar el docker mas importante de todos (Portainer), con el cual podremos administrar todos los docker que instalemos a posteriori.
Lo primero deberemos crear un volumen para que guarde todos los datos portainer y a continuación instalar el contenedor como tal:
1 2 3 4 5 6 7 8 9 |
sudo docker volume create portainer_data sudo docker run -d \ --name Portainer \ --restart=always \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer |
Del comando tan largo anterior, explicamos un poco lo que significa cada termino para docker run
:
-d
indica a Docker que el contenedor debe ejecutarse en segundo plano, es decir, como un proceso en segundo plano.--name
, especificamos el nombre que queremos asignar al contenedor, lo que nos permite identificar y referenciar fácilmente el contenedor en operaciones posteriores.--restart=
, podemos configurar el comportamiento de reinicio del contenedor, por ejemplo, especificando que se reinicie automáticamente al reiniciar la Raspberry Pi.-p
, mapeamos los puertos del contenedor Docker. El primer puerto especificado es el puerto externo al que accederemos desde fuera del contenedor, mientras que el segundo es el puerto interno del contenedor.Es recomendable crearnos una carpeta por ejemplo /docker/... y dentro carpetas por cada contenedor para guardar la configuración del mismo y así si borramos el docker por equivocación o por actualización no perderemos los datos.
Una vez completado el paso anterior, accederemos a la interfaz web de Portainer utilizando la dirección http://iplocal:9000 en nuestro navegador. La primera vez que accedemos, se nos pedirá establecer un nombre de usuario y una contraseña para futuros accesos. Una vez que hayamos iniciado sesión, se nos presentará una pantalla en la que debemos seleccionar si queremos controlar un Portainer externo o interno. En este caso, seleccionaremos "local" y haremos clic en "Connect" para continuar. Después de esto ya tendríamos la pantalla principal de portainer y los contenedores actuales. En este caso solo nos sale uno porque no hemos instalado mas. Una vez completado este paso, estaremos listos para comenzar a instalar diferentes contenedores Docker según nuestras preferencias y configurarlos de manera interactiva a través de la interfaz web. Para finalizar, aquí hay un par de trucos y recomendaciones que pueden ser útiles para diagnosticar problemas y errores comunes en los contenedores:
Cuando un contenedor no se inicia correctamente o su estado es "running" pero no realiza la función prevista, es probable que el error principal sea la incompatibilidad del contenedor con el sistema operativo en el que se está ejecutando. Este tipo de error generalmente se reporta en los registros del contenedor y se identifica como "exec.error 190". Si encuentras este error en los registros del contenedor, es probable que necesites buscar una versión o configuración alternativa del contenedor que sea compatible con tu sistema operativo específico.