[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)