Podman vs Docker

Podman (the POD MANager) is a tool for managing containers and images, volumes mounted in those containers, and pods made from groups of containers. Fully based on libpod, a library for container lifecycle management that is also contained in this repository. The libpod library provides APIs for managing containers, pods, container images, and volumes.
This amazing tool is an open source project that is available on most Linux platforms and resides on GitHub.
Finally, Podman provides a Docker-compatible command-line front-end that can simply create an alias for the Docker CLI, alias docker=podman.
Main Differences Between Docker and Podman

-
Docker has two main building blocks: Docker CLI and Docker Daemon.
-
Docker Daemon: is a constant background process that helps manage Docker images, containers, networks, and storage volumes. There is also a Docker Engine REST API to interact with the Docker daemon, accessed via HTTP protocol.
-
Docker CLI is the Docker command-line client for interacting with the Docker daemon. Naturally, we use it when executing any Docker command.
Due to this architecture, Docker has some problems:
-
Docker runs in a single process (and all child processes belong to this process), which can result in a single point of failure;
-
If the Docker Daemon fails, all child processes will lose control and enter an orphaned state;
-
All steps need to be performed by root for Docker operations.
Podman Advantages
-
Meanwhile, Podman was created without a daemon, yet it is still possible to develop, manage, and run OCI containers on your Linux system. Containers can be run as root or in rootless mode. With this, it has some additional benefits such as:
-
Interacts directly with the image registry, containers, and image storage;
-
Docker is built on a container runtime called runC and uses a Daemon, instead of using the daemon, Podman is using runC directly;
-
There is no need to start or manage a daemon process;
-
There is compatibility between Podman and Docker images.