Install packages for Arch Linux

# Core + fast OCI runtime + rootless networking + overlay FS + newuidmap/newgidmap
sudo pacman -Syu podman crun slirp4netns fuse-overlayfs netavark aardvark-dns shadow
 
# Nice to have (optional)
sudo pacman -S buildah skopeo            # image/build tools
sudo pacman -S podman-docker             # provides a `docker` shim that calls podman
sudo pacman -S podman-compose            # docker-compose-like CLI

Install packages for ubuntu

Update and install the core packages

sudo apt update
sudo apt install -y podman crun slirp4netns fuse-overlayfs uidmap

What these map to vs Arch:

  • podman → Podman itself
  • crun → fast OCI runtime (Podman uses it by default on many distros)
  • slirp4netns → rootless networking
  • fuse-overlayfs → overlay filesystem support for rootless storage
  • uidmap → provides newuidmap/newgidmap (Ubuntu package name differs from Arch’s shadow)

Rootless user namespace ranges (required for best rootless behavior)

On Ubuntu, uidmap is installed above, but you also want subordinate ID ranges configured: If your user already has entries in /etc/subuid and /etc/subgid, don’t duplicate them—just ensure you have a range.

echo "$USER:100000:65536" | sudo tee -a /etc/subuid
echo "$USER:100000:65536" | sudo tee -a /etc/subgid

Verify rootless prerequisites

podman info

Quick test

yanboyang713@Meta-Scientific-Linux ~ % podman run --rm quay.io/podman/hello
Trying to pull quay.io/podman/hello:latest...
Getting image source signatures
Copying blob 81df7ff16254 done   |
Copying config 5dd467fce5 done   |
Writing manifest to image destination
!... Hello Podman World ...!
 
         .--"--.
       / -     - \
      / (O)   (O) \
   ~~~| -=(,Y,)=- |
    .---. /`  \   |~~
 ~/  o  o \~~~~.----. ~~
  | =(X)= |~  / (O (O) \
   ~~~~~~~  ~| =(Y_)=-  |
  ~~~~    ~~~|   U      |~~
 
Project:   https://github.com/containers/podman
Website:   https://podman.io
Desktop:   https://podman-desktop.io
Documents: https://docs.podman.io
YouTube:   https://youtube.com/@Podman
X/Twitter: @Podman_io
Mastodon:  @Podman_io@fosstodon.org

Docker-CLI compatibility

sudo pacman -S podman-docker
docker run --rm hello-world   # actually runs via Podman

Compose

mkdir ~/demo && cd ~/demo
cat > compose.yml <<'YAML'
services:
  web:
    image: nginx:alpine
    ports: ["8080:80"]
YAML
podman-compose up -d

Systemd user service for auto-start

podman create --name nginx -p 8080:80 nginx:alpine
podman generate systemd --name nginx --files --new
mkdir -p ~/.config/systemd/user
mv container-nginx.service ~/.config/systemd/user/
systemctl --user enable --now container-nginx.service
 
# keep it running when you’re logged out (once per machine)
loginctl enable-linger "$USER"