UI para Docker?

Dante88

Hola,
Soy Full Stack, pero en mi trabajo va creciendo la necesidad de montar servicios: apps en produccion (cuando van destinadas a pocos usuarios) o servicios internos.

Al final he acabado aprendiendo mil cosas sobre dev ops.

Pero el caso es que mi forma de gestionar docker es bastante rudimentaria, me conecto por ssh y ejecuto comandos tediosos.
Como es un side effect de mi trabajo nunca le puse mucha atención para agilizar y darle robustez a esta parte hasta hoy.

Me gustaria tener una UI que se conecte a la máquina donde tenemos los contenedores y gestionarlo todo desde ahi. Pero es algo relativamente pequeño, no vamos a tener alta disponibilidad, balance de carga, etc. Al menos de momento.

Cual es la mejor solucion para esto? (kubernetes, swarm, otra cosa?) Que UI podria utilizar?
Todo debe ser gratuito y self-hosted.

draz1c

Échale un vistazo a Portainer a ver si cumple con tus necesidades.

4 1 respuesta
pantocreitor

Te diría que los comandos tediosos son la mejor y más rápida forma de gestionar todo xD

Pero si no te mola puedes probar rancher desktop, podman o lazydocker (esta es de terminal y no recuerdo si solo para Linux o también para win, pero es muy visual y sencilla de usar)

1
Kirbos

Pero levantais docker a pelo? Sin un gestor de contenedores tipo kubernetes?

Kubernetes es una maravilla y es EL gestor de contenedores. Si quieres operarlo lo mejor es el cliente "k9s" o "Lens"

k9s es más agil pero un cliente "visual" en linea de comandos
Lens es un cliente más visual

Podeis tambiñen instalar Rancher y darle de alta los clusters de Kubernetes que tengais levantados. Rancher te da una interfaz web visual tambien muy chula para operar los clusters, contenedores, pods, servicios, etc...

Pero POR DIOS, usad un gestor de contendores, no levanteis contenedores en máquinas a peloncho con docker run y a correr. Y si es Kubernetes mejor. O docker swarmm si no hay más remedio.

1 1 respuesta
Jocaru

#2 otra opción mucho más sencilla es Dockge, a veces menos es más.

Dante88

#4 Docker build y docker run. A la que el sistema es algo más complejo y hay variables de entorno una red o varios contenedores que se comunican entre ellos uso docker compose.

Pero cada app/sistema tiene su docker compose y no estan gestionados desde un punto centralizado.

Kubernetes habia leido que es para casos bastante avanzados donde tienes varias maquinas fisicas con duplicidades. Pero si es la mejor solución allá que voy.

2 respuestas
Fyn4r

Yo recuerdo que Portainer me había dado algunos problemas pero no recuerdo por qué y la gente lo recomienda mucho, asi que no debe de estar mal.
Luego algunas herramientas web de gestion de SO tienen plugins para contenedores que igual te pueden valer (ejemplo Cockpit en Fedora)

A mi personalmente me flipa este: https://github.com/jesseduffield/lazydocker
Pero no sé si es de tu estilo xD

draz1c
#6Dante88:

Pero cada app/sistema tiene su docker compose y no estan gestionados desde un punto centralizado.

Portainer tiene 'GitOps updates', pones el/los docker-compose en Github por ejemplo y los contenedores se te actualizan y deployean (o re-reployean) al hacer pushes al repositorio.

1 respuesta
Dante88

#8 Y para conseguir esto, que tipo de acceso a la maquina necesitas? porque en este caso estamos dentro de una VPN y no es posible acceder a la maquina desde fuera. Deberia ser un proceso periodico dentro de nuestra maquina que vaya preguntando por nuevas versiones, no al reves.

2 respuestas
Kirbos

Si el contenedor se cae por lo que sea cómo lo recuperais?

1 respuesta
draz1c

#9 Entonces en esta opción en vez de usar webhooks seria polling:

Y ya es la maquina la que se lo baja de Github periódicamente, con webhooks si que necesitaría tener acceso desde el exterior.

1
Dante88

#10 Esta automatizado para que se lance cuando se reinicia la maquina y si es el propio contenedor el que cae con la restart policy.

Gigi_men

#6 Estais utilizando Docker Compose en producción? Si es el caso, acaban de morir gatitos.

Docker Compose únicamente para entornos locales de desarrollo. Si para vuestro caso de uso Kubernetes es demasiado tedioso (que lo entiendo por la complejidad del ecosistema), utilizad algún otro orquestador como Docker Swarm (que no es lo mismo que Docker Classic Swarm), o mi recomendación, K3s.

De esta manera tendrás un entorno mucho mas estable aparte de tener funcionalidades muy similares a Kubernetes para cuando tengáis un ecosistema lo suficientenemtengrande como para migrar.

2 1 respuesta
Dante88

Vale,
pues me quedo con la idea de que lo mejor seria usar Docker Swarm o K3s, como solucion sencilla pero robusta.
Y para gestionarlo todo desde una UI, Portainer o Dockge.

Kirbos

#13 Yo es que no veo docker swarmm más "facil" que Kubernetes. De hecho al revés. Kubernetes es más facil de operar, desplegar y controlar.

1 respuesta
B

Tanto Lazydocker como k9s funcionan en Windows perfectamente, al menos bajo Windows Terminal y PowerShell. En la anterior version de Lazydocker, cada vez que levantabas el engine de Docker (mediante Docker Desktop en mi caso y WSL2) tenías que ir a $HOME/.docker y en config cambiar el default context a "", pero a partir del update de hace 1-2 meses (scoop), va del tiri sólo con lanzar el engine.

BeerSerk

#9 si instalar WatchTower se puede configurar para que revise un Registry privado

Yo esto lo tengo en el NAS y es una maravilla…

https://github.com/containrrr/watchtower

Por otro lado, para solo docker, portainer es un musthave… pero si, metería k8s o algún gestor de la infra

Kaledros

Ya que estamos, medio secuestro el hilo y pregunto: ¿hay alguna manera de levantar el daemon de docker en MacOS sin abrir Docker Desktop o similar?

1 respuesta
BeerSerk

#18 en Reddit he visto que contestan a esto, hace mil q no uso macOS el mío es de 2012 😅

https://www.reddit.com/r/docker/s/eGyZ79exJB

Gigi_men

#15 No se que experiencia tendras administrando Kubernetes, pero te invito a que montes uno en un servicio no gestionado. Y en caso de que quieras montarlo en un servicio gestionado, te invito muy fuerte a que lo actualices. Eso solo para empezar. Solo partiendo de los distintos componentes que forman el control plane, ya tienes entretenimiento para rato. Y si despues ya entras en deprecaciones de APIs y demas...

Usuarios habituales