Take look at Podman, Red Hat’s daemon-less Docker Alternative

Podman is a new, open-source, container engine that works seamlessly with containers as well as pods. This project is different because it doesn’t actually depend on a daemon(like Docker), but instead launches containers and pods as child processes. Podman is the CLI tool for interacting with libpod, a library that allows other tools to manage pods and containers.


In this post, we take look at the steps for installation and learn to run the Nginx container using Podman.

Key Features

Before diving into the tutorial, let’s look at the key features of Podman.

  • Podman can be easily run as a normal user, without requiring a setuid binary. When run without root, containers use user namespaces to set root in the container to the user running Podman.
  • Supports multiple image formats including the OCI and Docker image formats.
  • Support for multiple means to download images including trust & image verification.
  • Container image management (managing image layers, overlay filesystems, etc).
  • Full management of container lifecycle.
  • Support for pods to manage groups of containers together.
  • Resource isolation of containers and pods.
  • Support for a Docker-compatible CLI interface through Podman.
  • Signing and pushing images to various storage backends are not supported at this point. Do checkout Skopeo for these tasks.
  • Container runtimes daemons for working with the Kubernetes CRI interface are not supported.
  • No support for docker-compose but Podman allows the creation and execution of Pods from a Kubernetes YAML file.

Now that we have learned what Podman can do and what not, we will dive into a simple tutorial of running an Nginx container using Podman.

Running Nginx container using Podman.

I’m using Ubuntu 18.04 for this tutorial,libpod the package is being worked on for inclusion in the default Debian/Ubuntu repos.

Meanwhile use the below command to install

. /etc/os-release
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update -qq
sudo apt-get -qq -y install podman
sudo mkdir -p /etc/containers
echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | sudo tee /etc/containers/registries.conf

Image – Check Podman Version

Let’s deploy a container that includes a webserver we can access. We’ll use the official NGINX image and deploy it with the below command.

podman run -d nginx:latest

Image – Run Nginx container

Once the container is deployed, use ps command to check what containers are running.

Image – Check what containers are running
Images – Use the images command to check if the images are pulled

Now that containers are running, we can launch lynx a terminal-based web browser to access the Nginx application using the following command.

lynx <IP-Address>:80

Nginx app
Image – Nginx app deployed

Congrats! We have learned the basics of installing and using Podman. 

Useful Resources :

Like this post? Don’t forget to share it!

Take look at Podman, Red Hat's daemon-less Docker Alternative
Article Name
Take look at Podman, Red Hat's daemon-less Docker Alternative
Take look at the steps for installation and learn to run Nginx container using Podman.
Publisher Name
Publisher Logo

Average Rating

5 Star
4 Star
3 Star
2 Star
1 Star

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Previous post How to Fix Microsoft Compatibility Telemetry High Disk Usage?
Next post Visualize IoT-scale time-series data using Azure Time Series Insights