3.1 Portainer. Gestión de contenedores
Imagen obtenida de https://www.portainer.io/
Esta herramienta sirve para...
Gestionar los distintos contenedores, imágenes, stacks,... que tengamos en nuestra Raspberry Pi a través de un entorno gráfico en lugar de hacerlo a través del terminal del sistema operativo. Cuenta con una versión BE (Business Edition) y otra CE (Community Edition), usaremos la 2ª.
Web de proyecto y otros enlaces de interés
Página web oficial: https://www.portainer.io/
Repositorio de la versión CE en github: https://github.com/portainer/portainer
Documentación del proyecto: https://docs.portainer.io/
Despliegue
Si crees que instalar portainer del modo que a continuación se explica es complicado puedes instalarlo a través del método que explicamos en el capítulo 3.3 Linux Media Delivery System (LMDS). No te librará de utilizar la terminal pero quizás te resulte mas amigable.
En la propia documentación podemos encontrar como desplegar Portainer ( https://docs.portainer.io/start/install-ce/server/docker/linux ). Vamos a recopilar aquí qué hay que hacer y explicar los comandos
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
En la primera línea creamos un volumen llamado portainer_data
En la segunda línea lanzamos, desplegamos un contenedor:
- -d (--detach): Ejecuta un contenedor en segundo plano.
- -p (--expose): Nos permite indicar qué puerto del contenedor se corresponde con qué puerto de la máquina anfitriona.
- --name: Nos permite establecer el nombre del contenedor.
- --restart: Nos permite establecer qué queremos que ocurra en caso de que el contenedor falle. En este caso establecemos que se reunicie siempre.
- -v (--volume): Nos permite mapear rutas del contenedor con rutas de la máquina anfitriona.
- El último parámetro que aparece en la ruta
portainer/portainer-ce:latest
es la imagen que se va a ejecutar.
Visto y explicado cómo realizar la instalación según indica la documentación oficial, nosotros/as vamos a hacerlo de otro modo.
La forma que hemos visto con anterioridad funciona. Podéis usarla sin ningún problema. Ahora bien, dado que en este curso desconozco el nivel de partida de cada compañero/a que lo cursa voy a optar por utilizar un modo de despliegue semejante para cada servicio y, por ello, voy a hacer uso de docker-compose. Vamos allá:
Para ello accedemos al terminal y escribimos lo siguiente:
cd $HOME
mkdir portainer
cd portainer
nano docker-compose.yml
Dentro del fichero escribimos el siguiente contenido:
version: '2'
services:
portainer:
container_name: portainer
image: portainer/portainer-ce
restart: unless-stopped
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./volumes/data:/data
Para salir del fichero pulsaremos control + x
y guardaremos los cambios. Posteriormente ponemos en marcha los contenedores con docker-compose up -d
Aparecerá en pantalla algo similar a
Elaboración propia
Si queremos comprobar que el contenedor está en marcha podemos ejecutar docker ps --all
lo que nos mostrará todos los contenedor que hay en la máquina. Si queremos ver si, concretamente, está disponible el que acabamos de crear podemos ejecutar docker ps --all | grep
. Obteniendo unos resultados similares a los siguientes:portainer.portainer
Elaboración propia
También podemos tratar de acceder a la interface gráfica a través de un navegador web. Para ello accedemos a través del navegador la Raspberry Pi y al servicio Portainer del siguiente modo http://<IP>:puerto
en mi caso tengo configurada la raspberry Pi con la IP 192.168.0.201
y portainer con el puerto 9000
por lo que escribo http://192.168.0.201:9000
y así accedo a la interface web de portainer.
Elaboración propia
Funcionamiento
En el resto del curso el despliegue de los distintos servicios lo haré siempre a través de comandos pero debes saber que con esta herramienta puedes hacer lo mismo en un entorno gráfico.
Accederemos a XXX