Dentro de nuestro servidor casero, todas las aplicaciones que vamos a ejecutar las ejecutaremos a través de docker, en concreto de docker-compose.
Para ello tenemos dos opciones, la primera es tener nuestro fichero docker-compose con toda la configuración. Mientras que la segunda es tener la aplicación Portainer corriendo dentro de dicho docker-compose pero el resto de aplicaciones las configuramos dentro de portainer.
1 - ¿Qué es portainer?
Portainer es una interfaz de usuario para administrar contenedores Docker. Y la verdad es que lo hace muy bien y muy simple, tanto a la hora de la facilidad con la instalación como a la hora administrar los contenedores
2 - Portainer VS Docker Desktop?
Una opción es porque no quieres pagar el uso de docker-desktop (la interfaz), desde hace unos meses es de pago para las empresas, portainer tiene la versión comunidad que es gratuita y se puede usar si eres parte de una empresa.
Otra opción es si no eres un usuario avanzado, que apenas tiene conocimiento de contenedores, o de informática en general, pero necesitas contenedores para montarte tu servidor casero.
Con portainer lo puedes hacer de una forma sencilla, ya que la interfaz nos permite añadir contenedores desde la misma.
Mientras que con docker-desktop no podemos modificar ni añadir nada en la interfaz, con portainer tenemos una sección para crear “stacks” los cuales nos permiten añadir nosotros mismos desde la UI los contenedores que queramos, eso sí, necesitas la configuración para el .yaml
.
Aquí podemos ver un ejemplo con ambas interfaces siendo ejecutadas al mismo tiempo:
Con docker desktop, la única alternativa que tenemos es modificar el fichero docker-compose nosotros mismos; Y en mi caso, modificar el fichero en el Synology DS420+ se hace un poco tedioso, ya que tengo que acceder por SSH. Y ahora mismo, estoy migrando de docker-compose
a portainer porque el acceso al fichero se me está haciendo muy pesado.
- Nota: en mi dia a dia laboral, sigo utilizando docker, pero en el servidor es más cómodo Portainer.
2.1 - Instalar portainer
Para instalar portainer vamos a tenerlo que hacer en docker o con docker-compose
, pero puede ser perfectamente el único servicio que necesitemos ejecutar en él, y con el siguiente código lo podemos ejecutar:
portainer-ce:
image: portainer/portainer-ce:2.14.2
ports:
- 9444:9443 # https
container_name: portainer
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock #the first part referes to boot2docker in the VM
- D:\Server-config\portainer\data:/data #indica la tuya
Para acceder a portainer lo tenemos que hacer por el puerto SSL. Asi que por ahora, que no tenemos certificados, nos saldra la alerta del certificado, pero la aceptamos sin mas.
La url es https://{ip-server}:9444/
y ahí deberemos crear nuestro usuario principal.
2.2 - Instalar un nuevo servicio con Portainer
Para instalar un nuevo servicio lo primero que tenemos que hacer es crear un stack
Y dentro de este stack, configuramos los servicios que queramos, en mi caso únicamente voy a poner overserr
:
Una vez terminamos, le damos a “deploy the stack
” y una vez termine podremos ver el stack con los servicios que está corriendo, y podemos observar que tenemos diferentes botones de acciones:
Y si vamos a la URL http://{ip-server}:5055
vemos como nos carga sin ningún problema.
Además dentro de la propia interfaz de portainer tenemos acceso tanto a los logs como a la linea de comandos.
2.3 - Acceso a Portainer
Quiero hacer una mención especial, portainer es una aplicación web, por lo tanto puedes acceder desde el navegador. recomiendo encarecidamente tener una contraseña súper segura para administrador (o configurar OAuth y poner 2FA ) y tener otro usuario de normal, con menos permisos.
Y cada recurso del sistema puede tener diferentes niveles de acceso también:
Por defecto tenemos 3 niveles:
- Administrador : únicamente los administradores tienen capacidad para modificar dicho recurso.
- Restringido: podemos limitar su administración a un grupo de usuarios, ya sea uno o varios.
- Público: cualquier usuario con acceso a la aplicación podrá administrar el recurso.
2.4 - Estadísticas en portainer
Uno de los puntos que a mí más me gustan son las estadísticas del uso de CPU o Memoria, si bien es cierto que docker-desktop nos da las estadísticas de un contenedor específico en el momento en el que miramos. Pero Portainer mantiene un gráfico, que siempre ayuda ir mirando de vez en cuando para ver si hay algún contenedor que consuma demasiado.
Conclusión
En este post hemos visto
- Qué es Portainer y como configurarlo así como un ejemplo sencillito
- Hemos visto las características de Portainer
- Una comparación entre Docker desktop y portainer
- Mi opinión personal es que para alguien no experto o un servidor es mejor utilizar portainer que el propio docker-compose ya que suele ser más tedioso tener que actualizaro.
- Para trabajar profesionalmente yo sigo prefiriendo hacerlo todo en el fichero
docker-compose
.