482 - Podman Desktop existe o el que tiene podcast se equivoca

PodcastPodcast

482 - Podman Desktop existe o el que tiene podcast se equivoca

Te cuento diferentes interfaces gráficos que puedes utilizar tanto con #podman como con #docker en #linux así como utilizar Caddy con Podman muy fácil

1:25
-3:15

El episodio 478 del podcast titulado Adiós Docker, bienvenido podman lo dediqué a la migración que estaba emprendiendo de Docker a Podman, para adoptar este segundo como mi medio por defecto. En el episodio del podcast, indicaba ventajas e inconvenientes de utilizar uno y otro, y por supuesto, las motivaciones, que me habían llevado a cambiar a Podman. Sobre todo por esa opción de utilizar contenedores sin necesidad de root. Sin embargo, metí la pata hasta el fondo con el asunto de Podman Desktop. Así que en este episodio quiero rectificar y no solo esto, sino que quiero contarte algunas inquietudes que tenía cuando hice el pasado episodio del podcast, y que ya he podido resolver.

Podman Desktop existe o el que tiene podcast se equivoca

Podman Desktop existe o el que tiene podcast se equivoca

El que tiene podcast se equivoca

Sobre Podman Desktop

Podman Desktop es una herramienta que proporciona una interfaz gráfica de usuario (GUI) para el uso de Podman, que es una herramienta de código abierto para la gestión de contenedores en sistemas Linux. Podman permite a los desarrolladores crear, ejecutar y gestionar contenedores de aplicaciones de manera eficiente y segura.

Proporciona una interfaz fácil de usar para interactuar con Podman, lo que permite a los usuarios gestionar contenedores y sus imágenes, así como crear, iniciar, detener y eliminar contenedores con una interfaz gráfica. También ofrece características adicionales, como la posibilidad de configurar redes y volúmenes para los contenedores, gestionar imágenes de Docker y Podman, y acceder a registros de contenedores.

Otras alternativas a podman desktop

Podman Desktop Companion

Podman Desktop Companion es una herramienta de código abierto que proporciona una interfaz gráfica de usuario (GUI) para el administrador de contenedores Podman en sistemas operativos Linux. Podman es una alternativa a Docker, que permite la gestión y ejecución de contenedores Linux en un entorno de desarrollo o producción. Podman Desktop Companion ofrece una forma más fácil y visual de interactuar con Podman, especialmente para aquellos que prefieren una interfaz gráfica en lugar de la línea de comandos.

Podman Desktop Companion funciona en Windows, Mac y Linux, proporcionando la misma interfaz gráfica. Podman Desktop Companion es excelente para mejorar habilidades y aprender características de ‘podman’. El panel de control ofrece solo las características esenciales para que los usuarios se sientan cómodos.
A continuación se muestra lo que puedes gestionar con Podman Desktop Companion.

  • La aplicación tiene la misma apariencia en todas partes, ¡sin mapeo mental!
  • Informa completamente a los usuarios dónde guarda los registros y la configuración.
  • Permite a los usuarios depurar y comprender lo que sucede detrás de escena.

Múltiples motores

  • Rápido y nativo solo en Linux.
  • Virtualizado para cualquier sistema operativo.
  • LIMA para MacOS.
  • WSL para Windows.
  • Ambos motores de podman y docker.
  • Se planea agregar otros.

Gestión de contenedores

  • Infórmate sobre el origen y estado de tu entorno de contenedores.
  • Accede rápidamente a registros, variables de entorno, montajes, puertos abiertos y estadísticas de monitoreo.
  • Realiza operaciones de mantenimiento comunes, como detener, reiniciar y eliminar fácilmente.
  • Acceso directo a los servicios expuestos usando tu navegador.
  • Obtén control de todo lo que sucede dentro del contenedor utilizando la consola de terminal.

Gestión de imágenes

  • Infórmate sobre el origen y estado del almacén local de imágenes, su registro, nombre y etiqueta.
  • Crea rápidamente nuevos contenedores a partir de imágenes, personaliza el nombre, los mapeos de puertos y los montajes disponibles.
  • Accede rápidamente a la construcción de imágenes, verifica su impacto y depura su configuración.
  • Visor de configuración detallada.
  • Realiza operaciones de mantenimiento comunes, como descargar las últimas actualizaciones para refrescar las imágenes, o enviar los últimos cambios a un proyecto de imagen distribuida.

Todo lo relativo a seguridad,

  • Comprobaciones de seguridad.
  • Infórmate de las vulnerabilidades conocidas.
  • Ayuda a crear y mantener sistemas seguros.

Respecto a la gestión de redes,

  • Crea y reutiliza redes en cualquier momento.
  • Conoce la configuración detallada de cada red.

En el caso de los pods,

  • Accede al poder completo de los pods en motores compatibles.
  • Accede a registros, procesos y detalles.
  • Genera kubes y realiza acciones comunes.

Gestión de máquinas virtuales,

  • Gestiona todas las máquinas virtuales de podman disponibles, crea nuevas o decomisiona las redundantes.
Instalación

Respecto a la instalación, indicarte que lo tienes disponible en paquetes rpm, deb, flatpak y AppImage. Yo lo estoy utilizando en este último formato y funciona perfecto.

Pods

Pods es una interfaz de usuario para podman. Utiliza libadwaita para su interfaz de usuario y se esfuerza por cumplir con los principios de diseño de GNOME. Con Pods, puedes, entre otras cosas:

  • Conectarte a instancias locales y remotas de Podman.
  • Tener una visión general de imágenes, contenedores y pods de manera fácil.
  • Ver información detallada sobre imágenes, contenedores y pods preparados.
  • Inspeccionar imágenes, contenedores y pods.
  • Ver y buscar registros de contenedores.
  • Monitorear los procesos de contenedores y pods.
  • Descargar imágenes y construirlas utilizando Dockerfiles.
  • Crear pods y contenedores.
  • Controlar el ciclo de vida de los contenedores y pods (en grupo) (iniciar, detener, pausar, etc.).
  • Eliminar imágenes, contenedores y pods (en grupo).
  • Limpiar imágenes no utilizadas.
  • Renombrar contenedores.
Instalación

Puedes instalar Pods desde flatpak, utilizando la siguiente instrucción,

flatpak install com.github.marhkb.Pods

cockpit-podman

Se trata de la interfaz de usuario de Cockpit para los contenedores Podman. Yo no he llegado a probarlo, pero te dejo enlace por si quieres hacer tu los honores.

podman-tui

podman-tui es una interfaz de usuario de terminal para podman v4 (>=4.0.2). Utiliza las vinculaciones de podman en Go para comunicarse con una máquina local o remota de podman (a través de SSH).

El servicio podman.socket debe estar en ejecución en la máquina de podman. La forma recomendada de iniciar el servicio del sistema de Podman en modo de producción es a través de la activación del socket de systemd:

systemctl --user start podman.socket
Atajos de teclado en podman-tui

podman-tui utiliza las siguientes teclas del teclado para diferentes acciones:

AcciónTecla
Mostrar el menú de comandosm
Cambiar a la siguiente pantallal
Cambiar a la pantalla anteriorh
Mover hacia arribak
Mover hacia abajoj
Salir de la aplicaciónCtrl+c
Cerrar el diálogo activoEsc
Cambiar entre widgets de interfazTab
Eliminar el elemento seleccionadoDelete
Mover arriba/abajoArriba/Abajo
Pantalla anterior/siguienteIzquierda/Derecha
Desplazarse hacia arribaPágina arriba
Desplazarse hacia abajoPágina abajo
Mostrar pantalla de ayudaF1
Mostrar pantalla de sistemaF2
Mostrar pantalla de podsF3
Mostrar pantalla de contenedoresF4
Mostrar pantalla de volúmenesF5
Mostrar pantalla de imágenesF6
Mostrar pantalla de redesF7
Instalación

En el caso de Manjaro y Arch, se encuentra en los repositorios AUR, con lo que lo puedes instalar fácilmente con yay o paru, de la siguiente forma,

yay -S podman-tui

o en el caso de paru

paru -S podman-tui

podman-compose

Respecto al uso de podman-compose, tengo que decirte que funciona fino, fino. Te diría que todos los docker-compose.yml que están en el proyecto Self-Hosted, los puedes utilizar, pero no es del todo así. Y es que seguramente tengas algún que otro problema con los volúmenes del tipo bind.

Hace ya algún tiempo, te comenté que estaba trabajando en migrar de los volúmenes del tipo bind los named, por las ventajas que estos traían, y que te comenté en un episodio anterior del podcast. En concreto en el episodio 474 del podcast titulado Porqué cambié mi uso de Docker y otras preguntas. Si quieres mas información, dale un vistazo a las notas de ese podcast.

También hay algunos problemas con algunas de las características de docker-compose, como por ejemplo las variables de entorno que no se cargan. Pero esto son pequeños detalles perfectamente solucionables.

Sobre los puertos privilegiados

Para evitar el problema de los puertos privilegiados, se pueden tomar diferentes acciones. Actualmente la que he utilizado, es la misma que comenté en el podcast 474 sobre los usos de docker y que he comentado anteriormente.

Sin embargo, como comentaré mas adelante todavía tengo que darle una vuelta, porque, en el caso del uso de caddy no me ha funcionado del todo.

La joya de la corona, el proxy inverso

Tenía dos miedos para no migrar a podman. Por un lado resuelto de la mando de podman-compose, y por otro lado el proxy inverso. Esto era sobre todo mi mayor miedo, sin embargo, una vez habilitado el socket de Podman, ha sido relativamente sencillo. Te dejo el docker-compose de Caddy que estoy utilizando, para que veas que prácticamente no cambia nada,

version: "3.7"
services:
  caddy:
    image: lucaslorentz/caddy-docker-proxy:ci-alpine
    init: true
    ports:
      - 80:80
      - 443:443
    environment:
      - CADDY_INGRESS_NETWORKS=proxy
    networks:
      - proxy
    volumes:
      - /run/user/1000/podman/podman.sock:/var/run/docker.sock:ro
      - caddy_data:/data
    restart: unless-stopped

networks:
  proxy:
    external: true

volumes:
  caddy_data: {}

Es muy similar a su equivalente para Docker rootless, que mostré en algún que otro vídeo anterior, donde utilizaba el siguiente volumen del tipo bind para el socket,

- /run/user/1000/docker.sock:/var/run/docker.sock:ro

Indicar que puedes hacer un enlace simbólico en el caso del socket y así no tienes que hacer ni siquiera esto. Simplemente,

ln -s /run/user/1000/podman/podman.sock /var/run/docker.sock

Más información,

Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

4 comentarios en “Podman Desktop existe o el que tiene podcast se equivoca

  1. Miguel Mayol-Tur hace 1 mes

    Gracias otra vez Lorenzo, aún no me he puesto con podman – de momento no lo necesito -, pero si no lo he entendido mal, PD y PDC proporcionan ambos funciones similares, y …
    ¿Parecidas a las de Portainer para docker? pero GPL y no de pago.

    Por otra parte ¿Sabes si se podría crear un contenedor con qemu emulando, y Win 11 – con su Secure Boot y FTP virtual – que además tuviese la opción de usar la GPU en modo pasarela? (se puede hacer sin contenedores, pero no se si con contenedor se puede). Porque en caso de que se pudiese, con lo de la pasarela GPU de regalo si fuese así, siendo mucho más sencillo desplegar un contenedor que instalar MS WOS 11 en máquinas virtuales, un POD MS WOS 11 o uno para cada marca de GPUs, sería un exitazo de descargas, o eso creo.

    1. atareao hace 1 mes

      Hola Miguel,
      PD y PDC te dan funcionalidades como Docker Descktop pero Open Source… Pero igualmente puedes correr portainer en Podman.
      Respecto al qemu, no tengo ni idea. En general no utilizo Windows, con lo que sobre esta parte poco puedo aportar.
      Un saludo.

  2. Edgardo Lo Grasso hace 1 mes

    Estimado Lorenzo. Instale podman en mi rpi4 con manjaro sin error. Cuando quiero correr podman pull alpine me da este error. Si me puedes orientar. Desde ya muchas gracias
    Error: copying system image from manifest list: writing blob: adding layer with blob «sha256:c41833b44d910632b415cd89a9cdaa4d62c9725dc56c99a7ddadafd6719960f9»: processing tar file(potentially insufficient UIDs or GIDs available in user namespace (requested 0:42 for /etc/shadow): Check /etc/subuid and /etc/subgid if configured locally and run podman-system-migrate: lchown /etc/shadow: invalid argument): exit status 1

    1. atareao hace 1 mes

      Comprueba que los valores que salen son similares a estos,

      grep atareao /etc/subuid /etc/subgid
      /etc/subuid:atareao:100000:65536
      /etc/subgid:atareao:100000:65536

Deja una respuesta

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