How To Install Podman Desktop on Ubuntu 26.04 LTS

Install Podman Desktop on Ubuntu 26.04 LTS

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
  • sudo or root access

Required tools:

  • apt package 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: v2 confirms your kernel supports per-user resource limits for rootless containers
  • graphDriverName: overlay confirms the correct storage backend is active
  • cgroupManager: systemd confirms 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.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!
r00t is a Linux Systems Administrator and open-source advocate with over ten years of hands-on experience in server infrastructure, system hardening, and performance tuning. Having worked across distributions such as Debian, Arch, RHEL, and Ubuntu, he brings real-world depth to every article published on this blog. r00t writes to bridge the gap between complex sysadmin concepts and practical, everyday application — whether you are configuring your first server or optimizing a production environment. Based in New York, US, he is a firm believer that knowledge, like open-source software, is best when shared freely.

Related Posts