EDIT: For some context, I recently gave podman another go. I have a few services on my homelab server set up in docker containers, so I tried migrating to podman.

After the second major bug (open issue on github) I encountered looked like it would require completely dropping using compose files to work around, I gave up and went back to docker.

I like the idea of podman, but it’s just not stable. I’ll try again in a year or so.

As a bonus, docker’s CLI is significantly nicer.

      • CallMeAl (like Alan)@piefed.zip
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        1
        ·
        9 days ago

        I don’t know how you would even compare them. Quadlets can do what Docker Swarm or Kube does with dynamic instances and dependency lifecycle management. Docker Compose doesn’t have nearly the same features as Podman Quadlet.

        • hirihit640@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 days ago

          Docker swarm uses compose files too. But really, when you have tools like Podlet that converts compose files to quadlets, it’s a pretty good sign that the two fit 90% the same use cases.

          • CallMeAl (like Alan)@piefed.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 days ago

            I think its more than Compose does a small subset of what Quadlets can do. I can understand why if your only use case is Compose and you already like it, why change? For me, the rootless by default and daemonless nature of podman quadlets, and its clean design all make it the preferred choice.

            • hirihit640@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              9 days ago

              Podman-compose also works rootless and without a daemon. Naturally since it’s daemonless, it does require a separate systemd service if you want services to automatically restart (I forget exactly what that systemd service is called).

              What do you mean by “clean design”? This is of course subjective but I just want to understand quadlets more.

              • CallMeAl (like Alan)@piefed.zip
                link
                fedilink
                English
                arrow-up
                1
                ·
                8 days ago

                What do you mean by “clean design”?

                If you are comfortable reading the source code for each project that is the most revealing way to see the difference.

                In short, Docker has a lot more code because it duplicates a lot of kernel and systemd functionality (often poorly), uses multiple components that communication over grpc with each other to do things, requires setuid binaries, and defaults to running everything as root.

                Podman, is a straight forward clean simple program that fully uses kernel and systemd interfaces rather than duplicating functionality. Quadlet is build on systemd generators and its use of templates via systemd instances lets you use deterministic dynamic configuration in ways that is unlike anything in Docker.

                • hirihit640@sh.itjust.works
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  8 days ago

                  If you are comfortable reading the source code for each project that is the most revealing way to see the difference.

                  Strongly disagree on this. Design can mean many different things. For example in the docker vs podman explanation you gave, you are talking about integration with Linux and adherence to Linux standards, and I agree that with you on that. That’s one of the reasons I do prefer Podman over Docker.

                  However when I think about “clean” in regards to podman-compose vs Quadlet, I think about the user/developer experience. Quadlets integrate with systemd, but as a consequence inherit the design and interfaces of systemd. This means putting Quadlet files into a global systemd folder. This makes GitOps harder since all your projects get combined into a single folder. Also I’m not a fan of how verbose systemd config format is, like the repetition of keys. Seeing PublishPort= repeated for every port mapping looks ugly imo. And every service needs to be defined in a separate file, even if some services are only a few lines of config. Which makes it harder to see all services at a glance.

                  I recognize this is all my subjective preferences, but this is just what I think when I hear “design”.

                  • CallMeAl (like Alan)@piefed.zip
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    8 days ago

                    Sounds like you are more interested in how the “house” was painted while I’m more focused on the construction materials and architecture.

                    If you truly don’t care what the source code looks like or how it works internally, then we aren’t even having the same conversation.