Live data from Hacker News

Docker is dead? Podman – an alternative tool?

content.fme.de

41–50 of 183 posts

Re: Docker is dead? Podman – an alternative tool?

#41

OCI compatible containers are the future, docker and podman both classify as such. https://opencontainers.org/ That being said, docker blows. Docker desktop blows more. Docker desktop on Windows blows the most. I always get stuck with a bind mount misbehaving, or some other issue that requires me to wipe the docker desktop data to fix it. Just use docker compose for simple stuff, and stay away from docker for Windows…

Given that docker modelled the OCI standard on their own software and expected everyone else to follow along, I think it would be nigh impossible for them to not be in compliance with the spec.

Re: Docker is dead? Podman – an alternative tool?

#42
Personally, i still find Docker to be the easiest way to get containers up and running - everything from Dockerfiles, building images (caching aside), to running them with Docker Compose, Docker Swarm or even Kubernetes with Docker as the runtime.

Why?

Docker - one of the older and most popular runtimes for OCI, with all of the tooling you might possibly want; most of the problems are known and solutions are easy to find, vs venturing "off the happy path" (not everyone has the resources to try and figure out Podman compatibility oddness)

Docker Compose - ubiquitous and perhaps the easiest way to launch a certain amount of containers on a host, be it a local development machine, or a remote server (in a single node deployment), none of the complexity of Kubernetes, no need for multiple docker run commands either

Docker Swarm - most projects out there do not need Kubernetes; personally, i'm too poor to pay for a managed control plane or host my own for a cluster; K3s and k0s are promising alternatives, but Docker Swarm also uses the Compose specification which is far easier to work with and most of the times you can effortlessly setup a docker-compose.yml based stack, to run on multiple nodes, as needed; also, in contrast to Nomad, it comes out of the box, if you have Docker installed; also, when you don't want to mess around with a Kubernetes ingress and somehow feeding certificates into it, you can instead just run your own Apache/Nginx/Caddy instance and manage it like a regular container with host ports 80/443 (setting up which might be a bit more difficult with Kubernetes, because by default you get access to ports upwards of 30000)

Kubernetes with Docker as the runtime - maybe with something like K3s, if you need relatively lightweight Kubernetes but also want to figure out what is going on with individual containers through the Docker CLI which is familiar and easy to work with, to dig down vs what something like containerd would let you do

Long story short, choose whatever is the best suited solution for your own needs and projects. Just want things to work and be pretty simple, modern technologies, hyperscalability and ecosystem be damned? Docker/Compose/Swarm. Want something with a bit more security and possibly even for running untrusted containers, with lots of scalability and projects built around the technologies? Podman/containerd/Kubernetes.

I've heard about Docker and Swarm being dead for years, yet it seems to work just fine. They even fixed the DNS weirdness on RPM distros (RHEL/Oracle Linux) in the 20.X releases i think, though personally i'm more inclined towards using the second-latest Ubuntu LTS because there's far less SELinux or other weirdness to be had (e.g. K3s clusters failing to initialize because of changes to cgroups). When it will actually die for real, i'll just use something like https://kompose.io/ to migrate over from the Compose format to Kubernetes.

Of course, none of that excuses you from having to learn Kubernetes, because that's what the industry has decided on. My approach is more akin to basing a new project on PHP 7 because you know that you don't need anything more.

On a different note, your employers asking you to setup Kubernetes and to launch Nexus, PostgreSQL and whatever else on a single node that has 8 GB of RAM, as well as run a bunch of Java services on it can be challenging to say the least, especially when the cloud is not in the cards, there are no pre-existing clusters in the org, there isn't the interest to get more resources and even if there was, then there'd also be thoughts along the lines of "why should we give this one project that many resources?" expressed. I'm slightly exaggerating, but oftentimes it can be akin to choosing to run Apache Kafka when RabbitMQ would have sufficed - someone else making the choice for you, pushing you into sub-optimal conditions and making you suffer as a result.

I recently went to Europe DevDays 2022 (https://devdays.lt/) and DevOps Pro Europe 2022 (https://devopspro.lt/) and one of the arguments expressed was along the lines of: "You should never host your own clusters, if you can. Just pay one of the big three platforms out there (AWS/GCP/Azure) to do it for you." What a crazy time to be alive, where running the full stack can be problematic and enterprise solutions are getting more and more detached from what smaller deployments and homelabs would actually need.

That said, Podman is getting closer and closer to full feature parity with Docker with every passing year and Kubernetes is also easier to run thanks to clusters like K3s/k0s/RKE and tools like Lens/k9s/Portainer/Rancher.

Re: Docker is dead? Podman – an alternative tool?

#43

Earlier quoted context omitted.

What exactly does Docker for Desktop do? All it seems to me is a slightly annoying non-free GUI application I need to use docker cli from Windows or Mac.

Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.

Wasn't the main selling point of docker "no more VMs"?

Re: Docker is dead? Podman – an alternative tool?

#44

Rootless podman is my first choice for using containers now, it works fantastically well in my experience. It's so much nicer to have all my container related stuff like volumes, configs, the control socket, etc. in my home directory and standard user paths vs. scattered all over the system. Permission issues with bind mounts just totally disappear when you go rootless. It's so much easier and better than the root pr…

What about UID issues? I remember using it years ago and sometimes having permission issues in containers when mounting local files. How is that nowadays? I much prefer running this in a rootless manner also. What about docker compose? Is there an alternative for podman?

Re: Docker is dead? Podman – an alternative tool?

#45
post #36
post #20

Earlier quoted context omitted.

Is there any config to set up this way or do you literally just run podman on the socket and it just knows what to do?

You can set it as systemd socket service, so it doesn’t even run until something tries to connect. That said, I don’t even bother with that. Podman can run K8s configs, and they are yaml too, only slightly more verbose than a compose file, if you strip everything out you don’t need. The CLI is nicer than compose too, with proper commands instead of tying up a terminal until a ctrl-c.

So you can use kubectl but it talks to podman and not to the api of a k8s cluster? Or does it have its own cli?

Re: Docker is dead? Podman – an alternative tool?

#46

Earlier quoted context omitted.

What exactly does Docker for Desktop do? All it seems to me is a slightly annoying non-free GUI application I need to use docker cli from Windows or Mac.

Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.

> Runs docker in a VM for you

It depends:

  - the Hyper-V backend uses a VM for running the actual containers, which is a bit annoying because it just sits there and eats your RAM whenever it's on (technically you could enable dynamic memory for the VM, but i think it used to break)
  - the WSL2 backend uses the whole fancy new system that Microsoft came up with to, idk, attempt to embrace and extend Linux or something; far less annoying than Hyper-V but also has somewhat different approaches to setting resource limits (e.g. if you only wnat to give it 4 GB of RAM or 4 CPU cores so something is left for the rest of your system and doesn't slow down when you run docker build)
Honestly, Docker on *nix is a way better experience, but not everyone can run it for a variety of reasons (e.g. corporate policy or having the same PC for personal development and gaming).

Re: Docker is dead? Podman – an alternative tool?

#47
post #14
post #6

Think it is rapidly moving towards being more of a data carrier/format rather than being dead per se. Half the time you're jamming it into some cloud service anyway where you have no idea what GCP/fly/aws is using under the hood to actually run it. Meaning this discussion is more relevant to the self-hosted context. In which case I'd say containerization isn't really security. So in my mind that residual risk of the…

I'm still in the VM all the things camp. Like, containers are neat but VMs have the same cheapness for me - that is deploy some VM per app. Like Docker per app. Many times these days I'm one VM for just one Docker package. (Can you tell VM is my favorite isolation method)

I don't think people mind using VMs rather than containers.

The preference comes from the tool chain which is simpler for containers (even if you use Vagrant) and performance ( true or not, lots of people still have the sluggish VMs in mind.

Re: Docker is dead? Podman – an alternative tool?

#48
post #43

Earlier quoted context omitted.

Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.

Wasn't the main selling point of docker "no more VMs"?

This is for macs where no container api exists to this day

Re: Docker is dead? Podman – an alternative tool?

#49

Earlier quoted context omitted.

Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.

> Runs docker in a VM for you It depends: - the Hyper-V backend uses a VM for running the actual containers, which is a bit annoying because it just sits there and eats your RAM whenever it's on (technically you could enable dynamic memory for the VM, but i think it used to break) - the WSL2 backend uses the whole fancy new system that Microsoft came up with to, idk, attempt to embrace and extend Linux or something;…

And 2022 is still not the year of the Linux Desktop.

Many tried and went back to OSX die to the rough corners of desktop Linux.

Re: Docker is dead? Podman – an alternative tool?

#50
post #43

Earlier quoted context omitted.

Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.

Wasn't the main selling point of docker "no more VMs"?

That's true on Linux, where the container shares the host's kernel. On Windows, they need to create a Linux VM and run the Docker daemon inside it.
Post reply on HN