
If you manage Linux servers, you already know the Docker daemon is a security liability sitting in plain sight. It runs as root, owns a socket at /var/run/docker.sock, and a single misconfiguration can hand an attacker full host access. Podman Desktop on Ubuntu 26.04 LTS solves that problem by giving you a full graphical container management interface backed by a daemonless, rootless engine. This guide covers how to install Podman Desktop on Ubuntu 26.04 LTS from scratch, configure registries, enable rootless mode, and run a verified test container. By the end, you will have a production-ready container environment running on Ubuntu 26.04 LTS with zero daemon processes holding root on your machine.
What Is Podman Desktop and Why It Matters on Ubuntu 26.04 LTS
Podman Desktop is an open-source GUI application for managing OCI containers, images, pods, and volumes. It acts as a visual layer on top of the Podman engine already installed on your system. It does not bundle its own container runtime. Instead, it connects directly to your local Podman binary.
On Linux, Podman Desktop has a key advantage over Docker Desktop: no virtual machine is involved. Docker Desktop on macOS and Windows spins up a Linux VM to run containers. On Ubuntu 26.04 LTS, Podman runs containers as native Linux processes. The GUI connects directly to that engine, which makes it faster and lighter than you might expect from a desktop application.
Ubuntu 26.04 LTS ships Podman 5.7.0 in its default repositories with kernel 7.0 and full cgroups v2 support. You do not need a PPA. You do not need a third-party repository. That matters because it means the Podman installation will receive standard Ubuntu security updates through apt.
Here is a quick comparison to understand what you are working with before installation:
| Feature | Podman Desktop (Ubuntu 26.04) | Docker Desktop |
|---|---|---|
| VM on Linux | None, native | None on Linux |
| License | Free, Apache 2.0 | Paid for teams >250 |
| Root daemon | No | Yes (dockerd) |
| Rootless default | Yes | Partial |
| Cgroups version | v2 (kernel 7.0) | v1/v2 |
| Kubernetes support | Kind/Minikube built in | Built in |
The practical takeaway: Podman Desktop on Ubuntu 26.04 gives you a Docker Desktop-equivalent GUI with better security defaults and no licensing cost.
Prerequisites
Before you run a single command, confirm your environment matches these requirements. Skipping this check is the number one reason installs fail halfway through.
System requirements:
- Ubuntu 26.04 LTS (Resolute Raccoon), fully updated
- 64-bit x86_64 or ARM CPU
- Minimum 2 GB RAM (4 GB recommended for running multiple containers)
- Minimum 20 GB free disk space
- A working desktop environment (GNOME, KDE, XFCE) since Podman Desktop is a GUI app
sudoor root access
Required tools:
aptpackage manager (included by default)flatpak(installed in Step 3 below)- Internet access for package downloads
Run these verification commands before starting:
lsb_release -a # Must show Ubuntu 26.04
free -h # Check available RAM
df -h / # Check available disk space
echo $XDG_SESSION_TYPE # Must return "wayland" or "x11"
If $XDG_SESSION_TYPE returns nothing, you are on a headless server without a desktop session. Podman Desktop will install but will not launch. For headless servers, use the Podman CLI directly instead of Podman Desktop.
Step 1: Update Ubuntu 26.04 Before Installation
Always update before installing anything on Ubuntu. This is not just a formality.
sudo apt update && sudo apt upgrade -y
Why this step matters: Ubuntu 26.04 packages have tightly versioned dependency trees. Podman 5.7.0 depends on specific versions of libseccomp, crun, conmon, and netavark. If your package index is stale, apt may resolve these dependencies against older versions that do not support cgroups v2 correctly. A full upgrade guarantees that every library Podman needs is at its current stable version before you pull Podman into the mix.
If the upgrade installs a new kernel, reboot immediately:
sudo reboot
Why the reboot is not optional here: Podman 5.7.0 uses cgroup v2 kernel interfaces for rootless container resource management. If you skip the reboot, the new Podman binary runs against the old kernel. Features like per-user CPU limits and memory constraints for rootless containers will silently fall back to cgroup v1 behavior, which does not support them properly.
After rebooting, confirm you are running the expected kernel:
uname -r
# Expected output: 7.0.0-10-generic
Step 2: Install the Podman Engine (Required Backend)
Podman Desktop is a frontend. It needs the Podman engine installed on your system first. If you launch Podman Desktop without the engine, it opens with a red “Podman Not Connected” banner and nothing works.
Install Podman from Ubuntu’s default repositories:
sudo apt install -y podman
Confirm the version:
podman --version
# Expected: podman version 5.7.0
Now run a deeper inspection of the runtime environment:
podman info
You are looking for three specific values in the output:
host:
cgroupManager: systemd
cgroupVersion: v2
store:
graphDriverName: overlay
version:
Version: 5.7.0
Why each value matters:
cgroupVersion: v2confirms your kernel supports per-user resource limits for rootless containersgraphDriverName: overlayconfirms the correct storage backend is activecgroupManager: systemdconfirms Podman integrates with systemd for service lifecycle management
If cgroupVersion shows v1, go back and check that you rebooted after the kernel update in Step 1.
Verify Rootless User Namespace Maps
Before installing Podman Desktop, confirm that your user has UID/GID namespace mappings set up. These are required for rootless containers to work correctly:
cat /etc/subuid | grep $(whoami)
cat /etc/subgid | grep $(whoami)
If these commands return output like youruser:100000:65536, you are ready. If they return nothing, add the mappings manually:
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $(whoami)
podman system migrate
Why podman system migrate is necessary: After changing UID/GID mappings, Podman must rebuild the user’s container storage database to reflect the new namespace configuration. Skipping this step causes “user namespace” errors the next time you run podman run.
Step 3: Install Podman Desktop on Ubuntu 26.04 LTS (Three Methods)
You have three supported installation methods. Choose based on your environment. The Flatpak method is the right choice for most users.
Method 1: Flatpak via Flathub (Recommended)
Flatpak is the primary Linux distribution channel for Podman Desktop. Updates arrive from upstream the moment they are released, independent of Ubuntu’s release cycle. You are not waiting for a Debian package maintainer to push a new version.
Install Flatpak and add the Flathub repository:
sudo apt install -y flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Why --if-not-exists: This flag prevents an error if Flathub is already configured on your system. It makes the command safe to run in provisioning scripts without checking state first.
Install Podman Desktop:
flatpak install -y flathub io.podman_desktop.PodmanDesktop
Log out and log back in after installation. This step is required so your desktop environment picks up the new Flatpak application entry. Without it, Podman Desktop will not appear in your application launcher.
Method 2: .deb Package (Air-Gapped and Restricted Networks)
If your environment blocks outbound access to Flathub, use the direct .deb package from the official Podman Desktop GitHub releases page:
wget https://github.com/containers/podman-desktop/releases/latest/download/podman-desktop-latest-amd64.deb
sudo dpkg -i podman-desktop-latest-amd64.deb
sudo apt install -f
Why apt install -f after dpkg -i: The dpkg tool does not resolve dependencies automatically. It installs the package and marks any unsatisfied dependencies as broken. Running apt install -f (short for “fix broken”) finds those unmet dependencies and installs them without touching the main package you just installed.
Method 3: AppImage (No Installation Required)
The AppImage bundles Podman Desktop and all its dependencies into a single portable file. No root access needed to run it. Use this method when you want to test Podman Desktop without committing to a full install.
chmod +x podman-desktop-latest.AppImage
./podman-desktop-latest.AppImage
Why chmod +x is required: Files downloaded from the internet have the execute bit stripped by default. This is a deliberate Linux security behavior. You are explicitly granting execution permission before running the file.
Method selection guide:
| Method | Auto-Updates | Root Needed | Air-Gap | Best For |
|---|---|---|---|---|
| Flatpak | Yes | Yes (install) | No | Most users |
| .deb package | Manual | Yes | Yes | Restricted networks |
| AppImage | Manual | No | Yes | Quick testing |
Step 4: Configure Container Registries
After installing both the Podman engine and Podman Desktop, configure container registries before you try pulling any images. This step catches new Podman users off guard.
Why registry configuration is required: Podman 5.x does not use Docker’s implicit docker.io fallback by default. If you run podman pull nginx without configuring unqualified-search-registries, you will get this error:
Error: short-name "nginx" did not resolve to an image in any configured registry
Fix this by editing the system-wide registry configuration file:
sudo nano /etc/containers/registries.conf
Add or uncomment this line:
unqualified-search-registries = ["docker.io", "quay.io", "ghcr.io"]
Why this specific registry order: Podman queries registries in list order. Placing docker.io first mirrors Docker’s default behavior. Adding quay.io covers Red Hat and community images. Adding ghcr.io covers GitHub Container Registry images. This ordering means existing scripts written for Docker will work without modification.
Verify the configuration is loaded:
podman info | grep -A 5 registries
Alternatively, you can configure registries directly inside Podman Desktop’s Settings panel under “Registries” without touching any config files manually.
Step 5: Launch Podman Desktop and Complete Initial Setup
Launch Podman Desktop from your application menu or the terminal:
# Flatpak method
flatpak run io.podman_desktop.PodmanDesktop
# AppImage method
./podman-desktop-latest.AppImage
On first launch, Podman Desktop automatically detects your local Podman engine and connects to it. The dashboard displays four tabs: Containers, Images, Pods, and Volumes.
What you will see on the dashboard:
- A green status indicator labeled “Podman is running” in the bottom left corner
- An empty containers list (expected on a fresh setup)
- An onboarding checklist in the center panel
Why you should complete the onboarding checklist: Podman Desktop scans for common configuration gaps when it loads. It flags missing components like podman-compose, an outdated crun binary, or a missing Kubernetes provider. The checklist offers one-click fixes for each item. Running through it now takes two minutes and prevents cryptic errors during actual container work.
Why there is no “Podman Machine” initialization step on Linux: On macOS and Windows, Podman Desktop initializes a Linux VM called a “Podman Machine” before it can run containers. On Ubuntu 26.04, containers run natively as Linux processes. The Desktop connects directly to your system’s Podman binary. This is why Linux setup is simpler and faster than on other platforms.
Step 6: Run a Test Container to Verify the Full Stack
Do not assume the installation is working based on what the UI shows. Run an actual container to confirm the storage driver, cgroup integration, network stack, and registry connectivity all work end-to-end.
podman run --rm docker.io/library/hello-world
Expected output includes:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Why run hello-world instead of just checking --version: The --version command confirms the binary exists. Running an actual container confirms that crun can create a container namespace, the overlay storage driver can mount layers, the Netavark network stack can assign a container IP, and docker.io is reachable. Every layer of the stack is exercised in one command.
Now verify the container appears in the Podman Desktop GUI’s Containers panel simultaneously. If it shows in the CLI output but not in the GUI, that indicates a socket connectivity issue between Podman Desktop and the engine, not a Podman engine problem.
Run a full system health check:
podman ps -a
podman images
podman info --format "{{.Host.Security.Rootless}}"
The last command must return true. That confirms your containers are running in rootless mode with no root daemon involved.
Step 7: Keep Podman Desktop Updated
Staying current is not optional. Podman Desktop includes an Electron shell with bundled Chromium components. Outdated versions carry known CVEs in those components.
Update by installation method:
# Flatpak (automatic on most GNOME setups)
flatpak update io.podman_desktop.PodmanDesktop
# .deb package (manual)
sudo apt update && sudo apt upgrade podman-desktop
# AppImage (manual re-download)
# Visit podman-desktop.io/downloads and replace the existing file
Update the Podman engine separately on its own schedule:
sudo apt update && sudo apt upgrade podman
Why engine and Desktop updates are separate: Podman Desktop and the Podman engine are two independent packages. A Podman Desktop update only changes the GUI layer. A Podman engine update changes the container runtime itself, including security fixes for crun, conmon, and netavark. Both need to be updated independently to stay fully patched.
Troubleshooting Common Podman Desktop Errors on Ubuntu 26.04 LTS
Every Linux install hits at least one of these. Here are the five most common errors and exactly how to fix them.
1. “Podman Not Connected” Banner in the UI
Cause: Podman engine binary is not installed, or Flatpak sandbox cannot find it on $PATH.
Fix:
sudo apt install -y podman
flatpak run io.podman_desktop.PodmanDesktop
2. “Short Name Did Not Resolve to an Image” Pull Error
Cause: No unqualified-search-registries configured in /etc/containers/registries.conf.
Fix:
sudo nano /etc/containers/registries.conf
# Add: unqualified-search-registries = ["docker.io", "quay.io", "ghcr.io"]
3. “newuidmap” or User Namespace Errors
Cause: Your user account has no entries in /etc/subuid and /etc/subgid.
Fix:
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $(whoami)
podman system migrate
4. Blank or White Screen on GNOME Wayland
Cause: Electron rendering bug on GNOME 47+ with Wayland compositing.
Fix:
ELECTRON_OZONE_PLATFORM_HINT=x11 flatpak run io.podman_desktop.PodmanDesktop
For a permanent fix, add ELECTRON_OZONE_PLATFORM_HINT=x11 to your ~/.profile file.
5. Flatpak Install Hangs or Times Out
Cause: Flathub CDN throttling or a DNS resolution failure.
Fix:
# Test connectivity
curl -I https://flathub.org
# Check DNS resolution
cat /etc/resolv.conf
# If DNS is the issue, try temporarily using Cloudflare DNS
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
After fixing connectivity, resume the install with flatpak install -y flathub io.podman_desktop.PodmanDesktop again.
Congratulations! You have successfully installed Podman Desktop. Thanks for using this tutorial for installing the Podman desktop on your Ubuntu 26.04 LTS Linux (Resolute Raccoon) system. For additional help or useful information, we recommend you check the official Podman Desktop website.