Cloud Native 8 min read

Why Switch to Podman? A Hands‑On Guide to Installing, Running, and Managing Containers

This article introduces Podman, explains how to install it on CentOS, demonstrates pulling and running Nginx, MySQL, and a SpringBoot application, compares Podman with Docker, and shows how to manage containers visually with Cockpit, providing a practical alternative to Docker.

macrozheng
macrozheng
macrozheng
Why Switch to Podman? A Hands‑On Guide to Installing, Running, and Managing Containers

Podman Overview

Podman is an open‑source, daemon‑less container engine developed by Red Hat. It runs OCI containers, offers a Docker‑compatible CLI, and is pre‑installed on CentOS 8 (CentOS 7 requires manual installation).

Installation

On CentOS 7 install with yum -y install podman and start the service with systemctl start podman.

Basic Usage

Examples of pulling images and running containers:

Pull Nginx: podman pull nginx:1.10 Run Nginx with privileged mode and volume mounts:

podman run -p 80:80 --name nginx \
--privileged \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d nginx:1.10

Run MySQL similarly:

podman run -p 3306:3306 --name mysql \
--privileged \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

Enter the MySQL container and view databases:

# Enter container
podman exec -it mysql /bin/bash
# Login to MySQL
mysql -proot -uroot
# Show databases
show databases;

Running a SpringBoot Application

Pull the image from Docker Hub and run it, noting that Podman does not support the --link option, so the MySQL service must be accessed via its IP address.

podman run -p 8088:8088 --name mall-tiny-boot \
--privileged \
-e spring.datasource.url='jdbc:mysql://192.168.3.106:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai' \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d macrodocker/mall-tiny-boot:latest

After the container starts, the Swagger UI is reachable at http://192.168.3.106:8088/swagger-ui/.

Visual Management with Cockpit

Cockpit, included in CentOS 8, provides a web UI that can manage Podman containers, view logs, restart, stop, delete containers, and download images.

Podman vs Docker

Key differences:

Podman runs without a daemon and can operate under the invoking user; Docker relies on a root‑owned daemon.

Podman supports rootless containers; Docker’s daemon runs as root.

Podman uses external tools (e.g., Buildah) for image building; Docker builds images directly.

Podman follows a modular design with separate utilities; Docker provides an all‑in‑one CLI.

Most Docker commands work with Podman, and a podman-docker shim can translate Docker commands to Podman.

Conclusion

Podman offers a Docker‑compatible experience while eliminating the daemon, making it suitable for environments that require rootless operation or modular tooling. Existing Docker users can adopt Podman with minimal changes, but switching is optional depending on project needs.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

DockerDevOpscontainerizationLinuxContainersPodman
macrozheng
Written by

macrozheng

Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.