[HN Gopher] Podman Quadlets with Podman Desktop
       ___________________________________________________________________
        
       Podman Quadlets with Podman Desktop
        
       Author : teleforce
       Score  : 81 points
       Date   : 2025-04-14 17:16 UTC (5 hours ago)
        
 (HTM) web link (podman-desktop.io)
 (TXT) w3m dump (podman-desktop.io)
        
       | nashashmi wrote:
       | I have been trying to use podman with docker containers to avoid
       | the docker license fee, yet to no avail. Wish there was a
       | tutorial. The docker desktop is a nice interface to interact with
       | containers and podman did not have that last time I checked.
       | 
       | edit: Looks like it changed quite a lot. this looks so much nicer
       | 
       | edit2: I still need a tutorial. had so many errors come up. :(
        
         | mdaniel wrote:
         | I don't want to dissuade you from Podman Desktop, because
         | Podman is awesome in its own way, but I do hear you about the
         | "uncanny valley" part.
         | 
         | I wanted to offer that you don't have to jump all the way to
         | podman (and Podman Desktop) just to escape the Docker Desktop
         | licensing problem. There are _a lot_ of alternatives which a
         | whole spectrum of  "I am CLI savvy or not" interaction
         | experiences
         | 
         | - Rancher Desktop is A++ and carries a friendly license
         | https://rancherdesktop.io/ -> https://github.com/rancher-
         | sandbox/rancher-desktop/blob/v1.1...
         | 
         | - colima (and the lima it wraps) ->
         | https://github.com/abiosoft/colima#readme
         | 
         | - there's one from AWS called Finch
         | <https://github.com/runfinch/finch> that some of my colleagues
         | like better than colima; YMMV
         | <https://aws.amazon.com/blogs/opensource/introducing-finch-
         | an...>
        
       | infogulch wrote:
       | Quadlets came up recently:
       | 
       | Quadlet: Running Podman containers under systemd (mo8it.com) |
       | 298 points | 68 comments |
       | https://news.ycombinator.com/item?id=43456934
       | 
       | Where do quadlets fit in the container management landscape?
       | 
       | Running individual services that would have been RPMs? Docker
       | compose? K8s?
        
         | WesolyKubeczek wrote:
         | I run container sets (like you'd probably run with docker-
         | compose) as systemd services using this.
        
           | infogulch wrote:
           | How do you manage and deploy it? Git a systemd directory?
        
             | sc68cal wrote:
             | Ansible has support for quadlet creation in the
             | containers.podman collection
        
             | WesolyKubeczek wrote:
             | It's my homeassistant setup. I run mosquitto, zigbee2mqtt,
             | and homeassistant in it (everything they connect to is on
             | the network, so no need to do USB access mumbo jumbo). I
             | don't "manage" it; I have a yaml file (generated from
             | running containers with "podman kube generate") in a
             | directory along with volumes those containers need, and a
             | file in /etc/containers/systemd pointing to that yaml file.
             | That's it.
             | 
             | And once all peripherals are seen and run correctly, I
             | don't "manage" it as long as it works.
        
             | c45y wrote:
             | It's just a ~/.config/containers/systemd/ folder for
             | rootless containers, I stuff the whole thing in a git repo
        
         | pydry wrote:
         | quadlets is an answer to the question "but what if we also
         | threw a docker compose substitute into the systemd kitchen
         | sink"?
        
         | steeleduncan wrote:
         | > Running individual services that would have been RPMs?
         | 
         | Essentially this. Rather than adding anything on top of systemd
         | (which is almost certainly running anyway) quadlets are a way
         | of turning containers into systemd units, and directing systemd
         | to run them
         | 
         | I think it is the lightest weight, but still _convenient_ , way
         | of running a container as a daemon, with all the pros and cons
         | that implies
        
       | andreldm wrote:
       | I have a RPi 2 that's more than enough for my home server needs
       | and I've tried to migrate from docker to podman, it simply failed
       | miserably with weird errors, on my laptop everything worked fine,
       | so maybe that's an issue with Arch ARM or the 32-bit version of
       | it, but really, I wish they could abstract away quadlet, service
       | files generation and so on.
        
         | Alupis wrote:
         | If you install the `podman-docker` package, you get
         | compatibility with docker commands. If you have errors during
         | runtime, it's probably something in your container/config
         | that's assuming a docker socket/runtime. Some of which can be
         | remedied by pointing `DOCKER_HOST` to your podman socket, etc.
        
       | orthoxerox wrote:
       | What is the killer feature that will make me want to switch from
       | Docker Compose to Podman Quadlets?
        
         | dharmab wrote:
         | I prefer quadlet for 2 reasons:
         | 
         | 1. Podman is simpler than Docker. There is no long-running
         | daemon. Rootless is default.
         | 
         | 2. Quadlets can be managed as systemd services, giving me the
         | same tools to manage and view logs for system daemons and
         | containers.
         | 
         | Quadlets have been especially nice for bundling up an AI app I
         | wrote as a cloud-init file, making it easy to deploy the
         | hardware, software and models as one artifact.
        
           | pydry wrote:
           | quadlets == systemd which requires root to run. this is NOT
           | the same thing as "systemd cant run non root containers".
           | OBVIOUSLY it can, just as _docker_ can run non root
           | containers.
           | 
           | Making systemd a necessary dependency to run > 1 container
           | kinda negates many of the the nice advantages that podman has
           | of not requiring root.
           | 
           | podman compose doesnt require root and would serve as a
           | substitute but it's a _very_ neglected piece of software.
        
             | zacwest wrote:
             | You can do non-root systemd units, including Quadlets. See
             | <https://docs.podman.io/en/latest/markdown/podman-
             | systemd.uni...> under "Podman rootless unit search path."
        
               | pydry wrote:
               | you can run docker containers without them requiring root
               | too.
               | 
               | systemd _itself_ is a root service. it shouldnt be a
               | necessary dependency to run  > 1 containers without root.
               | somehow it is.
        
               | znhll wrote:
               | I recently started making the switch from docker (and
               | docker compose) to using podman and quadlet, but holy
               | crap is the documentation for podman quadlets a big f-you
               | wall-of-text mandoc that would make Torvalds proud. I've
               | read thru that and am still not quite sure of how to get
               | from point A to point B.
               | 
               | To replace a single docker compose file, sounds like one
               | needs to manually create a number of .container, .volume,
               | .network, .kube files correctly so systemd can spin up a
               | container pod? Is that what I'm reading? Is there nothing
               | that can generate that from a docker-compose.yml?
        
               | zacwest wrote:
               | I've used Podlet <https://github.com/containers/podlet>
               | somewhat successfully for this.
        
             | voxadam wrote:
             | systemd user units can be run by non-root users.
             | 
             | https://wiki.archlinux.org/title/Systemd/User
        
               | pydry wrote:
               | not the point as i mentioned above.
               | 
               | systemd itself requires root.
        
               | voxadam wrote:
               | Installing packages (like podman or moby/docker) using
               | dnf and apt requires root as well, so I'm not sure what
               | your point is.
        
               | pydry wrote:
               | making systemd - a root service - a necessary dependency
               | in order to orchestrate > 1 nonroot containers is both
               | unnecessary and bad architecture.
               | 
               | It was a shitty decision that renders it just "a less
               | popular docker" and not "a better docker".
        
               | linuxandrew wrote:
               | Podman doesn't have a dependency on systemd. e.g. it is
               | packaged in Void Linux.
               | 
               | Podman has a better architecture than Docker in that it
               | can easily run on a non-privileged user.
               | 
               | Quadlet (aka podman-systemd.unit) is a podman-systemd
               | integration which can make it easy to launch and
               | orchestrate podman containers via systemd. You can get
               | all if the systemd dependency handling, require other
               | units to run after a container finishes, and all sorts of
               | other useful things. Systemd "user" units (systemctl
               | --user) also works here with the containers running as a
               | non-privileged user in a non-root systemd context.
               | 
               | Just to be clear, Quadlet is just an integration and you
               | can still run podman without it. You can still run podman
               | on non-systemd systems as well.
        
               | exceptione wrote:
               | wut? Containers need an operating system.
               | 
               | systemd runs on a linux host, the rootless container runs
               | on a linux host, controlled by `systemctl --user ...`.
        
               | steeleduncan wrote:
               | systemd is the init process, the Linux kernel non-
               | optionally runs the init process as root
        
             | exceptione wrote:
             | systemctl --user ...
        
           | steeleduncan wrote:
           | Podman seems to have lower memory overhead than Docker. I
           | assume that is a consequence of your point 1
        
         | eriksjolund wrote:
         | Podman quadlet supports "Socket activation of containers"
         | https://github.com/containers/podman/blob/main/docs/tutorial...
         | This allows you to run a network server with `Network=none`
         | (--network=none). If the server would be compromised, the
         | intruder would not have the privileges to use the compromised
         | server as a spam bot. There are other advantages, such as
         | support for preserved source IP address and better performance
         | when running a container with rootless Podman + Pasta in a
         | custom network.
        
         | philips wrote:
         | I really like the user namespace handling `--user-ns=keep-id`.
         | It makes it easy for me to create a new Linux user and then
         | have that user run some container and have bind mounts, etc
         | just work correctly. It is the least fuss way I have found of
         | running little services that need access to the host
         | filesystem.
         | 
         | https://docs.podman.io/en/latest/markdown/podman-run.1.html#...
        
         | tiew9Vii wrote:
         | For local development I found no advantages, if anything I
         | found it a little less convenient.
         | 
         | For servers where you don't need the complexities of Kubernetes
         | etc, using Quadlets is nice as you can manage containers as
         | regular systemd services and no Docker daemon running as root.
        
       ___________________________________________________________________
       (page generated 2025-04-14 23:00 UTC)