537 - Increíble Portainer o Docker sin terminal

537 - Increíble Portainer o Docker sin terminal

Te cuento mi experiencia con #portainer #docker y #linux y como he ido resolviendo los pequeños inconvenientes que he encontrado y mis sensaciones

1:25
-3:15

Antes de comenzar con este episodio del podcast, te voy a confesar que estoy mucho mas cómodo tirando líneas de terminal que con el uso de una interfaz gráfica como Portainer. Las cosas son así. Cada uno es cada uno, y tiene sus propios gustos. Sin embargo, entiendo, que esto de la terminal supone una importante barrera de entrada para muchos usuarios. Eso de la pantalla negra, no es muy user friendly. Así que, con ánimo de facilitar el uso de Docker, y con la intención de que todo aquel que quiera pueda introducirse en el maravilloso mundo de self-hosted, he decidido trabajar un poco con esta herramienta, y crear algunos archivos docker-compose.yml, para importarlos directamente a Portainer. Es decir, se trata de trabajar con Portainer o Docker sin terminal.

Increíble Portainer o Docker sin terminal

Explicándome

Teniendo en cuenta el título, Increíble Portainer, es posible que te sorprenda, mis primeras palabras. Sin embargo, son dos aspectos que me llevan a aferrarme al uso, llamemos tradicional que estoy haciendo de Docker, si es que se puede llamar tradicional.

Por un lado, es la costumbre. Tengo tan metido entre ceja y ceja el tirar líneas de terminal, que en ocasión me cuesta adaptarme a otras circunstancias.

Pero, por otro lado, está el echo de que me encuentro más cómodo como que controlo mas la situación. Y es que cambiando un par de líneas de mi docker-compose.yml, soy capaz de hacer casi cualquier cosa. Y sin embargo, en el caso de Portainer, tengo que ir de un sitio a otro para localizar la configuración correcta.

Te diría que Portainer, casi me obliga a llevar un mejor control de todos los cambios que realizo sobre la configuración de cada stack, pero realmente, no es así. El mismo control lo llevo exactamente con los archivos en si. Al final, todo se encuentra en el sistema de control de versiones.

Sobre la WordCamp Valencia 2023

Esta no es la única razón para darle un poco de cariño a Portainer, también hay otra razón y es la WordCamp Valencia 2023, en la que participaré, precisamente hablando sobre Docker y WordPress, como no podía ser de otra manera.

La cuestión, es que mientras maduraba la charla de la WordCamp, no hacía mas que imaginarme mostrando capturas de pantalla de terminal, y claro, esto no podía ser. Realmente, la experiencia de usuario de Docker, directamente en terminal, como que no. Realmente, si lo que quiero es mostrar los beneficios que para un usuario medio representa el uso de Docker, frente a la instalación tradicional de un LAMP, no lo puedo hacer de la misma manera. Y no solo esto, también está la estandarización. Se trata de conseguir que todo este lo mas estandarizado posible, con el objetivos de evitar o por lo menos reducir los errores. Básicamente, me estoy refiriendo al uso de git, para conseguir montar una fábrica de churros o mejor dicho, y para este caso, de WordPress.

La gran ventaja de Portainer

Como digo en el propio título, la cuestión es que con Portainer, no te tendrás que ensuciar las manos, en el sentido de que no necesitarás entrar a la terminal para hacer nada o casi nada. En principio, y tal y como lo he terminado montando, no necesitarás entrar.

Antes que nada aclarar un nuevo concepto, que hasta el momento no había aparecido, y es el concepto de stack. Un stack en Portainer, es la equivalencia a un docker-compose.yml. Es decir, es el conjunto de servicios que se levantan en esa configuración?

Pero ¿como entonces vas a poder configurar un nuevo nuevo stack? Aquí es precisamente donde está la gracia de Portainer. Simplemente, tienes que hacer referencia al repositorio de GitHub, o de cualquier otro servicio de control de versiones, donde esté alojado ese docker-compose.yml. A partir de ahí, despliegas y a funcionar.

Aquí cabe destacar que esta es la verdadera ventaja, en el sentido de que puedes crear tus propios docker-compose.yml, particularizarlos según tus necesidades, y tenerlos siempre actualizados. Esto es fantástico.

Por supuesto, que también puedes hacer uso de los stack predefinidos de Portainer, pero aquí sin duda, pierde la gracia el uso de Portainer y de las configuraciones personalizadas, o al menos yo lo veo así.

La estructura

Traefik

Para montar el tinglado me he decantado por el uso de Traefik como proxy inverso. ¿Porque? Simplemente por el echo de que me da una gran cantidad de opciones.

Soy consciente que hay muchos que prefiere Nginx Proxy Manager, por el hecho de que puedes hacer la configuración de forma visual. Sin embargo, mi objetivo, es que no tengas que tocar la configuración de Traefik para absolutamente nada. Simplemente ponerlo a funcionar, y como mucho, en alguna ocasión, entrar por el panel de control de Traefik para ver como funciona.

Si bien tenía la posibilidad de configurar las etiquetas de Traefik posteriormente al docker-compose, he preferido hacerlo directamente en los archivos que sincronizo con Portainer. Aunque aquí tengo que hacer una salvedad, y es cuando levanto varios stack de lo mismo. En este caso, se repiten los router de Traefik, y esto finalmente genera errores.

Para evitar errores, es posible definir una variable de entorno ROUTER que sea la que diferencie entre uno y otro. De esta manera funciona perfecto., he preferido hacerlo directamente en los archivos que sincronizo con Portainer. Aunque aquí tengo que hacer una salvedad, y es cuando levanto varios stack de lo mismo. En este caso, se repiten los router de Traefik, y esto finalmente genera errores.

Para evitar errores, es posible definir una variable de entorno ROUTER que sea la que diferencie entre uno y otro. De esta manera funciona perfecto., he preferido hacerlo directamente en los archivos que sincronizo con Portainer. Aunque aquí tengo que hacer una salvedad, y es cuando levanto varios stack de lo mismo. En este caso, se repiten los router de Traefik, y esto finalmente genera errores.

Para evitar errores, es posible definir una variable de entorno ROUTER que sea la que diferencie entre uno y otro. De esta manera funciona perfecto., he preferido hacerlo directamente en los archivos que sincronizo con Portainer. Aunque aquí tengo que hacer una salvedad, y es cuando levanto varios stack de lo mismo. En este caso, se repiten los router de Traefik, y esto finalmente genera errores.

Para evitar errores, es posible definir una variable de entorno ROUTER que sea la que diferencie entre uno y otro. De esta manera funciona perfecto.

Portainer

La instalación de Traefik y de Portainer, las hice de forma tradicional, es decir, utilizando los archivos docker-compose.yml. Sin embargo, no te tienes que preocupar de nada. Si sigues las instrucciones de los README.md, que incluí en el repositorio funcionará suave.

En el caso de Portainer, tampoco es necesario añadir nada especial. La configuración funciona a la primera, sin necesidad de hacer ningún cambio. Salvo, por supuesto el FQDN.

Filebrowser

El tercero de los servicios que he instalado y que actualmente considero esencial es Filebrowser. Este servicio lo estoy utilizando para subir las configuraciones personalizadas del resto de servicios.

Me refiero aquellos archivos de condiguración, que son imprescindibles para el funcionamiento del servicio.

Para ello lo que hecho ha sido dentro de la configuración avanzada del contenedor, he realizado un mapeado de volumen adicional, de la siguiente forma,

 /srv/configurations => /home/lorenzo/configurations

Así todas las configuraciones irán a este directorio. Por ejemplo, en el caso de que tenga que configurar algún servicio concreto por ejemplo /app/config.yml, simplemente lo tengo que subir a Filebrowser, o incluso editarlo allí mismo, sin necesidad de recurrir a la terminal. Por ejemplo,

/app/config.yml => /home/lorenzo/configurations/den/config.yml

De esta manera, me evito por completo recurrir a la terminal, y todo lo puedo hacer directamente desde FileBrowser, que como tiene editor, me permite trabajar directamente sobre los archivos.

Sobre el uso de Portainer

En general, resulta mas cómodo trabajar con Portainer, que recurrir a la terminal. En especial, esto lo tengo comprobado a la hora de inspeccionar los logs o cuando quieres entrar en un contenedor para hacer algo. Si, tengo que confesar que de esta forma es realmente sencillo, y además la experiencia de usuario es mucho mas satisfactoria.

Sin embargo, cuando estoy en la terminal, la cuestión es que voy mucho más rápido. Cuestiones que en el caso de Portainer se tienen que resolver en varios clics, aquí en cuatro comandos lo tengo resuelto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *