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.

top 77 comments

sorted by: hot top controversial new old
[–] 102 points 2 months ago

Mom, i can i have podman?

Mom: we have podman at home.

Podman at home: rootless docker

  • source
  • [–] 133 points 2 months ago (15 children)

    Why would you use docker when you could use podman?

  • source
  • hideshow 15 child comments
  • [–] 48 points 2 months ago (8 children)

    I use docker since it's what I learned on a decade ago, and my nas that I started from supports docker bit not podman in the 'app store'. I have three other machines running plain Debian, but I would want everything to work together, y'know? I've got a set-and-forget setup and I'd rather not break things without substantial benefit...

    Plus everybody is like 'it's the same thing, no learning curve' but then I start reading up on it and uhoh, learning curves :p

  • source
  • parent
  • hideshow 8 child comments
  • [–] 41 points 2 months ago (3 children)

    Plus everybody is like 'it's the same thing, no learning curve' but then I start reading up on it and uhoh, learning curves :p

    Exactly this. I tried podman, as a "container" newb, based on the idea that it's a (better) drop-in replacement for docker, but it didn't work. My quick attempts to resolve it went nowhere, and there were no instructions for the container I was trying to spin up for podman to explain the differences required.

    So, in frustration, I decided to try docker and it just worked.

    Good enough for me, for now. I still prefer the idea of not having a daemon running with root privileges, so I'll likely move over to podman eventually, but I only have so much time to waste tinkering with my setup. And if it ain't broke, don't fix it.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 2 months ago

    In almost all cases podman will work as a drop-in replacement. Problems usually arise from podman not being rootful by default, which does make a difference in most scenarios that involve volume mounts, exposing ports or other kinds of host resource access. You can run podman as root and nowadays even docker as rootless (though at that point you might be better off with podman).

  • source
  • parent
  • [–] 1 point 2 months ago* (last edited 2 months ago) (3 children)

    Just use the repositories in the terminal...

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 2 months ago (2 children)
  • [–] 1 point 2 months ago (1 child)

    I mean, install it from the repos through your package manager in the terminal, on your NAS.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 2 months ago

    With every update they warn that any changes made outside the UI may be overwritten (only data in user directories is safe). I have edited a couple config files over the years that have sticked, but they expect the system directories to stay 'stock' and warn of data loss or system malfunction if changed. And since it's my nas it's a lot of data to be going yolo on, even with backups. Wayyyy to much risk for almost no benefit.

  • source
  • parent
  • [–] 11 points 2 months ago (3 children)

    Why would you use podman when you could

    #!/bin/ksh
    
    daemon_execdir="/home/etebase/src"
    daemon_logfile="/var/log/etebase"
    daemon="/home/etebase/pyenv/bin/uvicorn"
    daemon_flags="etebase_server.asgi:application --host 159.100.247.89 --port 8000"
    daemon_user="_etebase"
    
    . /etc/rc.d/rc.subr
    
    rc_bg=YES
    rc_reload=NO
    
    pexp="/home/etebase/pyenv/bin/python3 ${daemon} ${daemon_flags}"
    
    rc_start() {
            rc_exec ". ~/.profile; ${daemon} ${daemon_flags} >> ${daemon_logfile} 2>&1"
    }
    
    rc_cmd $1
    
  • source
  • parent
  • hideshow 3 child comments
  • [–] 172 points 2 months ago (53 children)

    I choose Podman bc it's open source and that's kind of the reason for using everything as a container bc those are often also open source. Fuck docker

  • source
  • hideshow 53 child comments
  • [–] 65 points 2 months ago (12 children)

    It also can integrate with Systemd via Quadlets. Let's you control containers as a sytemd service. I personally use them for my home server and have been happy with it.

  • source
  • parent
  • hideshow 12 child comments
  • [–] 22 points 2 months ago* (11 children)

    The learning curve for quadlets is quite harsh in my opinion. I started with podman compose 3 years ago for my homelab, because it allowed user containers.

    I tried to migrate to quadlets unsuccessfully, several times over the years. it was only recently that my self-hosted Qwen was capable enough to figure out where I was messing up and automate the process a bit.

    I probably wasn’t sufficiently motivated. It felt like podman compose is basically docker compose, but quadlets are a quite a bit different in form and function, so I was never able to grok them:

  • source
  • parent
  • hideshow 11 child comments
  • [–] 23 points 2 months ago (10 children)

    There is a tool named Podlet that can help translate to quadlets. I was able to fully translate my unraid and compose setups to quadlets.

  • source
  • parent
  • hideshow 10 child comments
  • [–] 2 points 2 months ago (5 children)

    I remember trying it and my compose files blew up to multiple Quadlet files with a much larger total size (lines of code). I find that compose is just more concise and structured compared to Quadlets.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 5 points 2 months ago (4 children)

    It does have a larger file size compared to compose, sure. The big advantage of quadlets is that systemd will handle things in the event of a failure. It makes it a great option for production environments where you will not need to update your config files as much. It also allows you to have more control over when each application starts, if they rely on a specific disk mount or service running on the system. I'm sure someone else can provide more benefits who use them in a production environment.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 1 point 2 months ago (3 children)

    Fair enough. My requirements are simply: start all services when the machine has finished booting. And I can't remember the last time my system failed. Most that happened was a power outage, and Quadlets wouldn't have helped there either.

    So in my case I much prefer simple and easy-to-read configs, over the complexity of integrating with systemd.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 2 months ago (2 children)

    Docker compose definitely works for most people, so I would feel pressured to swap.

    There is one instance where Quadlets would have fixed an issue we ran into at work. We had a Kafka instance whose container died and went away because we ran out of space on the server. Compose doesn't recreate containers on failure, so I was called in to fix the issue. Quadlets treats containers as disposable, so it would have recreated it as soon as it went away. The root of the issue was a bad logging config that we fixed on the next business day.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 months ago* (1 child)

    Compose doesn't recreate containers on failure

    Isn't it just restart: always in the config? Unless you're talking about podman, where you also need the podman-restart systemd service.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 2 months ago

    You are correct that they restart a container that has stopped because of a bad exit. I meant a container that has completely disappeared due to running out of storage on the system. Given, that is a failure of configuration to begin with.

  • source
  • parent
  • [–] 1 point 2 months ago (3 children)

    Are u running podman containers on Unraid or did you migrate away?

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 2 months ago (2 children)

    I migrated from docker containers on Unraid to using quadlets on RockyLinux. The Podlet utility helped a bit with taking an existing docker container and converting it to a quadlet. Also did thorough testing in a VM before swapping my server.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 months ago (1 child)

    Interesting, just migrated away from Unraid myself. But chose Proxmox -> Debian -> Podman Containers instead. Any reason in particular you chose Rocky?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 2 months ago

    The security of Rocky is solid and RL 10 is supported for quite a long time. I'm also used to RHEL based systems at work, as we target Red Hat.

    That being said, I wouldn't recommend it for most people. SELinux can be annoying to deal with and can cause issues where it isn't obvious that SELinux is the cause.

    If I were to chose again, I would probably just pick Debian as most of my workloads are just running in containers or VMs. The only services running on the host are NFS and Samba.

  • source
  • parent
  • [–] 48 points 2 months ago (15 children)

    Wtf I thought docker was foss. Fml man

  • source
  • parent
  • hideshow 15 child comments
  • [–] 65 points 2 months ago* (last edited 2 months ago) (11 children)

    Docker is foss. Docker desktop and docker sbx are not.

  • source
  • parent
  • hideshow 11 child comments
  • [–] 5 points 2 months ago (2 children)

    Are you sure about that? I see Copyright at the bottom (maybe the name) and is free only for personal tier, everything else costs money. Maybe some of the containers are open source per https://www.docker.com/products/trusted-content/open-source/ but I don't see where it says anywhere that the actual software that is docker is OSS let alone FOSS.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 months ago (7 children)

    It's FOSS, but not Libre, and more close to open-core than to open source.

  • source
  • parent
  • hideshow 7 child comments
  • [–] 4 points 2 months ago (4 children)

    The version that is installable from the repositories of Linux distros is all open source. Docker itself, the container engine and runtime are all open source. Nobody cares about stuff like docker desktop or docker sbx, not only are they not critical to the software itself, they aren't that useful or valuable.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 2 points 2 months ago (3 children)

    I don't mean Docker Desktop, I mean docker-cli and moby.

    Just because something has a FOSS license and is open-sourced in some code forge doesn't mean that it effectively respects some (or even all) of the four freedoms.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 0 points 2 months ago (1 child)

    It can't be FOSS but not Libre, the Free in FOSS means Libre. And it also can't be FOSS but not opensource, of course.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 8 points 2 months ago (2 children)

    If you install the GUI it literally won't let you open it unless you agree to their telemetry...

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 months ago

    The GUI is not technically "Docker". It's made by Docker the company but it doesn't use the same runtime engine, because it's meant for non-Linux OS which don't have it. It uses whatever the host OS has in place as an alternative.

  • source
  • parent
  • [–] 19 points 2 months ago (3 children)

    Also, does Docker do rootless containers yet?

  • source
  • parent
  • hideshow 3 child comments
  • [–] 22 points 2 months ago (2 children)

    It does, but it seems like it's still a bit of an afterthought. But it's getting better.

    Still tho, podman is fine and I like the project as an alternative to docker.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 6 points 2 months ago (15 children)

    Docker is open source though. Docker desktop is not.

  • source
  • parent
  • hideshow 15 child comments
  • [–] 6 points 2 months ago (10 children)

    So, the Docker engine is free, just not the software under certain stipulations. See I don't like that. A weird caveat for using it.

  • source
  • parent
  • hideshow 10 child comments
  • [–] 1 point 2 months ago (9 children)

    What do you mean? I don't see any CLAs or anything like that in the source code.

    https://github.com/moby/moby

    https://github.com/docker/cli

  • source
  • parent
  • hideshow 9 child comments
  • [–] 2 points 2 months ago (8 children)

    This NOTICE in both repos is weird asf:

    Docker Copyright 2012-2017 Docker, Inc.

    This product includes software developed at Docker, Inc. (https://www.docker.com/).

    This product contains software (https://github.com/creack/pty) developed by Keith Rarick, licensed under the MIT License.

    The following is courtesy of our legal counsel:

    Use and transfer of Docker may be subject to certain restrictions by the United States and other governments. It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

    For more information, please see https://www.bis.doc.gov/

    See also https://www.apache.org/dev/crypto.html and/or seek legal counsel.

    Also, they do limit some kind of uses if you don't pay.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 3 points 2 months ago (6 children)

    Also, they do limit some kind of uses if you don't pay.

    You mean Docker Desktop?

    Also iirc all software developed in the USA is subject to those restrictions.

  • source
  • parent
  • hideshow 6 child comments
  • [–] 1 point 2 months ago (5 children)

    …iirc all software developed in the USA is subject to those restrictions.

    Oh, well, I didn't knew about that, yeah.

    You mean Docker Desktop?

    And, in part yes, but these restrictions also apply to docker-cli and moby, although to a lesser extent

  • source
  • parent
  • hideshow 5 child comments
  • [–] 0 points 2 months ago (4 children)

    And, in part yes, but these restrictions also apply to docker-cli and moby, although to a lesser extent

    What restrictions? The ones on all US software or something else?

  • source
  • parent
  • hideshow 4 child comments
  • [–] -1 points 2 months ago (2 children)

    No, I mean, for anything beyond personal, non-commercial use, they do impose restrictions.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 2 months ago

    Use and transfer of Docker may be subject to certain restrictions by the United States and other governments. It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

    That's true of all software. It may be subject to restrictions by governments. But in this case, it seems to refer to the fact that the US restricted export of cryptographic software, and seemingly continues to restrict. See also Bernstein v. United States.

  • source
  • parent
  • [–] 2 points 2 months ago* (3 children)

    Docker desktop is not. (open source)

    Which can be a pretty big deal.

    This works out to: The product is unencumbered, but the only reliable installer is encumbered as fuck.

    That's a "no thanks", from me.

    I don't need the sword of "Docker fucking with my colleague's ability to collaborate" hanging over each of my projects.

    I'm not mad at folks using Docker for backwards compatibility. I just don't need to make the problem worse.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 2 months ago (2 children)

    I found Docker pretty easy to install. Though apparently it's harder on windows, where they suggest you just use docker desktop, in which case, yeah, fair point. But I'd just put docker in WSL if I had the misfortune of having to use it on Windows.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 months ago

    That's exactly what I'm doing at work. Works a treat especially since I'm fine with CLI.

    Keep in mind that some WSL configuration might be required for better experience β€” like setting networkingMode to mirrored.


    Sharing code between WSL filesystem and Windows is still somewhat of a hassle.

  • source
  • parent
  • [–] 41 points 2 months ago (5 children)

    Podman is unironically the better choice. Just try to make docker comply with your firewall...

  • source
  • hideshow 5 child comments
  • [–] 16 points 2 months ago (1 child)

    Docker bypasses your firewall and runs as root. Only an idiot would allow that shit.... I'm an idiot. But I'm fixing that.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 2 months ago

    It doesn't "bypass your firewall"... it lets you shoot yourself in the foot. You're asking it to open ports without specifying an explicit network interface so it opens them on all interfaces. Which includes opening up the firewall, because what's the point of putting up a service and blocking it in the firewall.

    Also, doing it by hand would be incredibly tedious. Docker automatically adjusts the rules to match the ports and interfaces to its private container netmasks, and brings them up or down as needed when the containers start/stop.

    All you have to do is bind ports to localhost or to a private interface if you don't want the service to be publicly exposed.

    Beginners get bitten by this because they say ports: 9999:9999 instead of ports: 127.0.0.1:9999:9999/tcp like they should. Unfortunately most examples out there use the terse version and never explain why it's bad.

  • source
  • parent
  • [–] [S] 1 point 2 months ago

    Podman is unironically the better choice.

    I like the idea of podman, but it’s just not stable. This meme was inspired by my frustration of trying to switch.

    Just try to make docker comply with your firewall.

    I literally did this yesterday and it wasn’t that hard. You just add iptables:False to the docker config file.

  • source
  • parent
  • load more comments
    view more: next β€Ί