Published 1 minute ago
Ayush Pande is a PC hardware and gaming writer. When he’s not working on a new article, you can find him with his head stuck inside a PC or tinkering with a server operating system. Besides computing, his interests include spending hours in long RPGs, yelling at his friends in co-op games, and practicing guitar.
Thanks to their low resource consumption and solid isolation facilities, I’ve been relying on containers extensively for the last couple of months. In fact, I’ve got different container runtimes and utilities in my home lab, with Podman being at the forefront of my dev projects and Kubernetes experiments. Meanw…
Published 1 minute ago
Ayush Pande is a PC hardware and gaming writer. When he’s not working on a new article, you can find him with his head stuck inside a PC or tinkering with a server operating system. Besides computing, his interests include spending hours in long RPGs, yelling at his friends in co-op games, and practicing guitar.
Thanks to their low resource consumption and solid isolation facilities, I’ve been relying on containers extensively for the last couple of months. In fact, I’ve got different container runtimes and utilities in my home lab, with Podman being at the forefront of my dev projects and Kubernetes experiments. Meanwhile, my self-hosted stack consists of multiple LXCs running on my PVE nodes. I also adore Docker’s simple and straightforward nature, which is why it’s powering the all-in-one monitoring suite on my Raspberry Pi.
However, I’d still occasionally use the Docker Desktop instance on my Windows 11 dev VM, even though it had started to look somewhat barebones after my container experiments. So, I ended up looking at alternatives – dedicated apps for managing containers instead of web UI-based services. Luckily, I chanced upon Podman Desktop, and after using it for a couple of days, I’m happy to get rid of Docker Desktop.
Related
Quadlet is the key tool that makes Podman better than Docker, and here’s how to use it
Besides integrating your Podman instance with systemd, Quadlet also lets you create config files for your containers
Podman Desktop has a Docker integration
Including good ol’ Docker Compose
Considering that Podman has its own container runtime, you’d believe that its desktop app has nothing to do with Docker. But as it turns out, Podman Desktop natively supports Docker tools – and I don’t just mean CLI commands, either. Podman Desktop can even create typical YAML-based Compose files to simplify container deployment – a feature I really adore about Docker.
For example, I tend to switch between CLI commands and graphical interfaces to manage my containers, and installing the Docker extension lets me run typical commands used by the all-popular containerization platform. Compose files work in a similar fashion, except I have to use the podman compose command, and containers deployed from these YAML configs feature the Compose label inside Podman Desktop’s management interface. As such, I’m free to switch between the Docker and Podman runtimes when deploying containers on the latter’s desktop application and use its GUI interface to manage the services afterward.
It works with additional container runtimes
What I really love about Podman Desktop is that it supports a couple of additional container tools besides Docker. For example, the Minikube and Kind extensions are perfect for integrating Kubernetes clusters into my containerization workflow, while Bootable Containers adds support for bootc-image-builder. Heck, Podman Desktop even supports Apple Containers, making it easier to access the new container runtime included in the latest versions of macOS. I’ve yet to tinker with Red Hat’s OpenShift environments, but I’ll probably give them a go over the winter break since Podman Desktop also has an extension for them. Throw in Podman Quadlet, MINC, Kreate, and other extensions, and Podman Desktop is a versatile app for container enthusiasts.
It ships with most container management tools I need
Aside from all the runtime platforms, Podman Desktop includes the essential menus, settings, and toggles to control my collection of containers. The Images tab lets me pull images from different repositories, build new ones via Containerfile documents, and spin them up into containers. Likewise, the Networks tab lets me manage the bridges as well as their subnets, while the Volumes section lets me check the sizes of the persistent data stores, clear the space occupied by unused volumes, and whip out new ones for future containers.
Then there’s the Container tab, which not only lets me control the operational state of my utilities but also provides detailed logs and includes a terminal interface to run commands inside these isolated environments. It even lets me migrate existing containers to Kubernetes nodes, which is pretty helpful when I want to run custom images on a K8s node.
The support for pod-based deployments is another plus
Perfect for isolating entire groups of containers
When I work on web-based apps, I prefer using Podman to containerize them, and that’s because of the pod facility. Similar to Kubernetes pods (but way less complicated), Podman pods let me group a bunch of closely-dependent services in a single environment, where they share the same network namespace.
Let’s say I wanted to work on a quick web app. Running the web server, database, and cache storage within the same pod reduces the complexity in bridging them together, as I don’t have to configure different bridges just to link them together. Plus, I can define custom firewall rules for them without impacting the rest of my container stack. Podman Desktop also includes a dedicated tab for managing different pods, and the Kube integration lets me spin new pods using K8s YAML configs.
That said, Podman Desktop isn’t the perfect replacement for its Docker counterpart
Although Podman Desktop fulfills most of my container needs, I have to admit that I miss built-in support for Docker Swarm. Look, I’m a Kubernetes guy through and through, but there are times when I prefer using Docker Swarm inside VMs because of its simple clustering mechanisms.
But aside from this minor gripe, I’m really satisfied with Podman Desktop. I don’t have to worry about missing out on the paywalled features of Docker Desktop, and get to tinker with different container runtimes, powerful K8s support, and pods without paying a dime.
Related
I use these 5 tools to turn my Raspberry Pi into a self-hosting behemoth
Even a Raspberry Pi can become a containerization war machine with the right set of apps