How to install Podman on Ubuntu?. Podman (Pod Manager) is a tool used to create and maintain containers. It is part of the libpod library. The Red Hat team has been working on a set of tools for running containers without a daemon. Did you know you can’t run Docker containers without Docker Engine daemon?.

podman ubuntu 18.04

The following set of tools work together to power the use of Containers without an all-time running daemon process.

  • Buildah to facilitate building of OCI images
  • Skopeo for sharing/finding container images on Docker registries, the Atomic registry, private registries, local directories and local OCI-layout directories.
  • Podman for running containers without need for daemon.

Buildah’s commands replicate all of the commands that are found in a Dockerfile. Buildah containers are just created to allow content to be added back to the container image.

How To Build OCI & Docker Container Images With Buildah

Podman gives you all the commands and functions required to maintain and modify OCI images, such as pulling and tagging. It also allows you to create, run, and maintain containers created from those images.

How to Install Podman on Ubuntu

The podman package is on a PPA repository which needs to be added prior to installation. Start a new terminal session on your Ubuntu machine and run commands below.

. /etc/os-release
echo "deb${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "${VERSION_ID}/Release.key" | sudo apt-key add -

Once the repository is added, proceed to install Podman.

sudo apt update
sudo apt -y install podman

After the installation, you can display information pertaining to the host, current storage stats, and build of podman.

$ podman  info
podman  info
  arch: amd64
  buildahVersion: 1.14.9
  cgroupVersion: v1
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.16, commit: '
  cpus: 2
    distribution: ubuntu
    version: "20.04"
  eventLogger: file
  hostname: ceph-admin
    gidmap: null
    uidmap: null
  kernel: 5.4.0-33-generic
  memFree: 7047921664
  memTotal: 8149680128
    name: runc
    package: 'runc: /usr/sbin/runc'
    path: /usr/sbin/runc
    version: 'runc version spec: 1.0.1-dev'
  os: linux
  rootless: false
    executable: ""
    package: ""
    version: ""
  swapFree: 0
  swapTotal: 0
  uptime: 1h 34m 54.9s (Approximately 0.04 days)
  configFile: /etc/containers/storage.conf
    number: 0
    paused: 0
    running: 0
    stopped: 0
  graphDriverName: overlay
  graphOptions: {}
  graphRoot: /var/lib/containers/storage
    Backing Filesystem: extfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
    Using metacopy: "false"
    number: 0
  runRoot: /var/run/containers/storage
  volumePath: /var/lib/containers/storage/volumes

Test Podman installation on Ubuntu

Pull Alpine docker image.

$ podman pull alpine
Trying to pull…Getting image source signatures
Copying blob 8e402f1a9c57: 2.63 MiB / 2.63 MiB [=======================] 5s
Copying config 5cb3aa00f899: 1.48 KiB / 1.48 KiB [=====================] 0s
Writing manifest to image destination
Storing signatures

List Downloaded images

$ podman  images
REPOSITORY TAG IMAGE ID CREATED SIZE latest 5cb3aa00f899 3 days ago 5.79 MB latest fce289e99eb9 2 months ago 5.62 kB

Podman’s local repository is in /var/lib/containers

Run container with command – command options similar to docker.

$ podman  run -it  --rm /bin/sh
/ # apk update
v3.9.2-1-g592d872fb8 []
v3.9.2-2-ge7dc3349a9 []
OK: 9754 distinct packages available

/ # apk add vim
(1/5) Installing lua5.3-libs (5.3.5-r1)
(2/5) Installing ncurses-terminfo-base (6.1_p20190105-r0)
(3/5) Installing ncurses-terminfo (6.1_p20190105-r0)
(4/5) Installing ncurses-libs (6.1_p20190105-r0)
(5/5) Installing vim (8.1.0630-r0)
Executing busybox-1.29.3-r10.trigger
OK: 40 MiB in 19 packages
/ # exit

Show running containers.

$ podman ps
CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS            PORTS  NAMES
1eb35f1b7de8  /bin/sh  4 seconds ago  Up 4 seconds ago         pedantic_roentgen
ec9c5b12db46  /bin/sh  5 minutes ago  Up 5 minutes ago         ecstatic_wiles

For more on usage, check: How To run Docker Containers using Podman and Libpod

To setup private registry, checkout:

Setup Docker Container Registry with Podman & Let’s Encrypt SSL


Podman seems to be a replacement for Docker and other container management tools which require a daemon to work. It is still fresh and in early development stages to tell a lot. In RHEL 8, the officially supported tools for managing Docker containers are Podman and Buildah.

Related guides:

How To Install Podman on Debian

How To Install Podman on Arch Linux / Manjaro

How To Install Podman on CentOS & Fedora

How to Install and use Packer on Ubuntu

How to Setup Docker Private Registry on Ubuntu 

How to setup 3 node Kubernetes Cluster on Ubuntu 18.04 with Weave Net CNI

Your support is our everlasting motivation,
that cup of coffee is what keeps us going!

As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.


  1. Very good information! I was able to install podman on my Ubuntu 20.04 system following these instructions. There is just one minor type under “Show running containers.”, the command is “podman ps” not “podman ls”.



Please enter your comment!
Please enter your name here