Podman is a lot like Docker: a tool for running OCI containers. While it maintains backwards compatibility with Dockerfile and docker-compose syntax, it offers a lot of other benefits:

  • daemonless: it can run containers without a daemon process running in the background.
  • Rootless: can run containers without root privileges
  • pods: can group containers into secluded pods, which share resources and network namespace

Podman has other features I haven’t explored yet, like compatibility with Kubernetes yaml file, and being able to run containers as systemd units.

Have you used podman before? What are your thoughts on it?

  • ono@lemmy.ca
    link
    fedilink
    English
    arrow-up
    11
    ·
    1 year ago

    Docker has rootless containers, too, although I think Podman has slightly better options for unprivileged uid management.

    Daemonless is appealing, especially for low-powered servers. Getting rid of Docker’s background resource usage is the main reason Podman is on my to-do list.

    I imagine pods could be handy to reduce network configuration for related services.

    I like that the tools exist to make Podman a drop-in replacement for Docker, including the building of containers.

    I have no interest in systemd; I hope it’s optional.

    • Cyclohexane@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Docker has rootless containers, too, although I think Podman has slightly better options for unprivileged uid management.

      I have not used Docker rootless, but I imagine podman has much better and more flexible network configuration as well?

      On systemd, I actually do not use systemd either, hence why I said I never tried those features. It is not a hard requirement at all. Though I have not tried to use any integrations with OpenRC and podman

    • shastaxc
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      In kubernetes, I often use multiple containers in a pod only to have init containers check certain status of other servers before running the main container. For example, making sure a database is online and I can query data from it. You can just add this to your main container’s start script though. Docker has a way to do this sort of thing too but it feels clunky.