Note: Podman Desktop 1.0 is now generally available. Learn more.
At KubeCon North America 2022, the Podman community unveiled introduced Podman Desktop, a new tool for developers. Podman Desktop allows developers to install, configure, and keep their container engine (Podman) up to date with a GUI. This convenient GUI enables users to interact with containers and pods running in Podman (Figure 1).
Podman Desktop also provides an easy deployment to Kubernetes for developers working with containers on their laptops, allowing a seamless transition from containers to pods and pods to Kubernetes. Podman expands to the desktop to provide a complete experience enabling developers to easily work with containers.
Motivation for the Podman Desktop initiative
Containers have become a fundamental part of a developer’s workflow. There is no avoiding them.
Containers are commonly used for:
- Standing up a local database
- Testing containers or a set of services via compose
- Building an application to deploy on the Red Hat OpenShift container platform or some other Kubernetes variant
How do we interact with containers on the desktop today? The majority of developers use Docker Desktop for local containers. But most container engines do not have a UI. Instead, developers have been using terminal windows, IDE extensions, or Kubernetes consoles. Developers have also been learning kubectl
to interact with containers.
These tools have their place in spite of their inconsistencies and the difficulty of bridging or interacting with multiple environments. Over time, however, developers must deal with higher complexity and additional overhead. The gaps and discrepancies between developing on the desktop and target Kubernetes production environments are becoming more challenging. As a result, the Podman Desktop initiative started with the goal to minimize the discrepancies.
An introduction to Podman Desktop
The Podman community has been working on Podman Desktop for the past few months. The initial scope is to provide a single desktop GUI to help interact with Podman or other Kubernetes environments for application developers.
You can install Podman with one click and get containers running on any machine in a couple of minutes. Then, you can complete daily container tasks such as starting and stopping the container engine, building images, or interacting with containers.
It's okay if all you want to do for now is install your container engine, view the status, or manage your Kubernetes environment in your system toolbar. Podman Desktop can also start and stop the container engine from here or switch your Kubernetes context.
When you open the Podman Desktop UI, the dashboard displays the status of your container engines. You will also see familiar tabs for containers, images, pods, and volumes.
The following is a list of most of the basic container functions supported:
Images and containers
- Pulling and building images
- Starting/stopping containers, configuring ports
- Inspecting containers logs
- Opening a terminal in containers and viewing log output
Integration with registries
- Configure multiple OCI registries
- Authenticate to registries
- Pull, tag, and push images to your registries
Volumes
- Browse and Inspect volumes created
- Configure proxies and Internal VPN
Working with pods on Kubernetes
Podman provides the capability to run pods in your local environment in a lightweight fashion. This enables you to easily work with Kubernetes objects directly in your developer environment without the need to spin up a local Kubernetes cluster. Watch this short videoillustrating the creation of a pod:
Podman Desktop helps you gradually move from individual containers to pods with multiple containers and Kubernetes. You will find features enabling you to transition containers into pods, generate Kubernetes YAML, and deploy them on Kubernetes environments. Watch this quick video illustrating the deployment of a pod on Kubernetes:
Kubernetes features include:
- Running pods locally with Podman
- Creating pods from existing containers
- Generating Kubernetes YAML
- Deploying local pods to Kubernetes environments
Future improvements to Podman Desktop
In the coming months, we will explore moving from containers to pods to Kubernetes.
Even with the theoretical portability of containers, getting them to run on Kubernetes can be challenging. While more developers are exposed to Kubernetes (and Kubernetes YAML), they need to test the application in an environment more representative of production. Developers should not be required to understand the complexity of Kubernetes.
Podman Desktop will continue to enable developers to quickly develop their applications, provide fast turnarounds, and make it easier to test applications on Kubernetes environments.
Resources for Podman Desktop
Ready to try it out for yourself? Podman Desktop installers are available on Windows, macOS, and Linux. Or you can use your favorite package manager, such as Brew, Flathub, Chocolatey, Scoop, or Windows Package Manager.
Learn more about Podman Desktop by visiting the Red Hat Developer Podman web page and the Podman Desktop GitHub repository. You can also join us on the Podman site and repository.
Get early access to the Podman in Action e-book written by Daniel Walsh. Daniel leads the Podman team at Red Hat. Discover easy-to-follow examples to learn Podman quickly, including steps to deploy a complete containerized web service.
Feel free to comment below. We would love to hear where you think this project should go. Please report bugs or share ideas for enhancements on GitHub. We also welcome you to join our feedback program or Discord chat.
Last updated: January 29, 2024