←back to thread

180 points teleforce | 3 comments | | HN request time: 0s | source
Show context
orthoxerox ◴[] No.43685880[source]
What is the killer feature that will make me want to switch from Docker Compose to Podman Quadlets?
replies(7): >>43685989 #>>43685992 #>>43686728 #>>43687129 #>>43687706 #>>43688911 #>>43690483 #
dharmab ◴[] No.43685989[source]
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.

replies(2): >>43686670 #>>43687155 #
pydry ◴[] No.43686670[source]
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.

replies(3): >>43686855 #>>43686924 #>>43686928 #
voxadam ◴[] No.43686924[source]
systemd user units can be run by non-root users.

https://wiki.archlinux.org/title/Systemd/User

replies(1): >>43686977 #
pydry ◴[] No.43686977[source]
not the point as i mentioned above.

systemd itself requires root.

replies(3): >>43687015 #>>43687216 #>>43687686 #
steeleduncan ◴[] No.43687216[source]
systemd is the init process, the Linux kernel non-optionally runs the init process as root
replies(1): >>43689906 #
1. pydry ◴[] No.43689906[source]
yeah thats what i said.

and that particular init process did way more than any init process ever should even before somebody had the bright idea to add "docker compose substitite" to its ever growing list of responsibilities.

you could put a word processor and games in their too if you really wanted. is that a good idea? ill leave that for the reader's judgment.

replies(2): >>43690004 #>>43690583 #
2. ratorx ◴[] No.43690004[source]
systemd just provides the feature to use a custom external application to configure a service based on a declarative spec, which podman uses to create actual systemd services from a declarative container spec.

From the podman docs:

> Podman supports building and starting containers (and creating volumes) via systemd by using a systemd generator.

Putting aside all the other issues one may have with systemd, this feels like a decent feature for a service manager to have (custom generation of service specifications).

> bright idea to add “Docker compose substitute”

Why is this so revolutionary? Docker-compose is just a service manager for containers. Systemd is a service manager. Systemd allowing podman to give it “container” features seems pretty reasonable.

3. xienze ◴[] No.43690583[source]
> before somebody had the bright idea to add "docker compose substitite" to its ever growing list of responsibilities.

systemd itself isn’t acting as a docker-compose substitute. Podman simply translates unit files containing docker-esque configuration (image name, volumes, etc.) into plain systemd unit files that contain (among other things) an ExecStart line that starts the container with the proper arguments.