Podman, Is it a Docker Substitute?

Reading Time: 3 minutes

Podman is an open-source, daemonless, Linux native tool designed to make it smooth to find, run, build, share and deploy applications using Open Containers Initiative (OCI) Containers and Container Images on your Linux System.

As it’s OCI-compliant, It can be used as a replacement for the better-known Docker runtime. Most Docker commands can be directly translated to Podman commands.

It provides a Docker-compatible command-line front end that can simply alias the Docker CLI, alias docker=podman.

What`s the Runtime?

To a lot of people, a “container” is still a “Docker container.” Which is not a correct representation of the current container ecosystem. Docker produces OCI container images, which can be used with other compatible runtimes. Kubernetes is one example, while Podman is another.

Podman and Docker have overlapping core functionality. Both produce images that the other can use to run containers. The two runtimes then add their own specialisms on top of the base containerization features.

The Podman approach is simple that is to directly interact with the image registry, with the container and image storage, and with the Linux kernel through the runC container runtime process (not a daemon).

How to Install Podman?

If you’re using RedHat Linux, Podman’s in the extras repository after that you can use the subscription manager to add the repository. You’ll then be able to use yum to install Podman.

su -
subscription-manager repos --enable rhel-7-server-extras-beta-rpms
yum -y install podman

Most other popular Linux distributions also include Podman in their default repositories. You can use

apt install podman

OR

dnf install podman 

to get it installed

Commands for Working with Containers and Images

Podman’s CLI is knowingly aligned with Docker’s. That means if you are familiar with Docker commands then there would not be any difficulty in using the Podman containers:

podman pull my-image:latest                                # To pull the image

podman run my-image:latest --name my-container             # To run the image 

podman ps                                                  # To list the podman processes

podman rm my-container                                     # To remove the container

podman kill my-pod                                         # Kill all containers

podman restart my-pod                                      # Restart all containers

podman stop my-pod                                         # Stop all containers

Docker vs Podman 

If you are wondering how Podman is different from docker, the following table helps you with some key differences.

PodmanDocker
It is DaemonlessDocker has a daemon (containerd ). In addition, The docker CLI interacts with the daemon to manage containers.
It interacts with the Linux kernel directly through runcDocker daemon owns all the child processes of running containers
It can deploy pods with multiple containers.
The same pod manifest can be used in Kubernetes. Also, you can deploy a Kubernetes pod manifest as a Podman pod.
There is no concept of a pod in Docker
Can run rootless containers without any additional configurations. You can run containers with root or non-privileged users.Docker rootless mode requires additional configurations

Conclusion

You might be using docker and looking for another tool around container management than just learn about podman.

Podman is an OCI-compliant container runtime that works without a daemon. The CLI implements all the core Docker commands. You can easily transition to Podman or use it alongside an existing Docker installation.

Written by 

Hi community, I am sachin from Ghaziabad a tech enthusiastic trying to make something useful for you.