1 Podman: A next-generation container engine


This chapter covers

  • What Podman is
  • The advantages of using Podman over Docker
  • Examples of using Podman

Starting this book is difficult because so many people come to it with different expectations and experiences. You likely have some experience with containers, Docker, or Kubernetes—or at least are interested in learning more about Podman because you’ve heard about it. If you’ve used or evaluated Docker, you’ll find that Podman works the same as Docker in most cases, but it solves some problems inherent in Docker; most significantly, Podman offers enhanced security and the ability to run commands with non-root privileges. This means you can manage containers with Podman without root access or privileges. Because of Podman’s design, it can run with much better security than Docker by default.

In addition to being open source (and therefore free), Podman’s commands, run from the command-line interface (CLI), are quite similar to Docker’s. This book shows how you can use Podman as a local container engine to launch containers on a single node, either locally or through a remote REST API. You’ll also learn how to find, run, and build containers using Podman with open source tools such as Buildah and Skopeo.

1.1 About all these terms

1.2 A brief overview of containers

1.2.1 Container images: A new way to ship software

1.2.2 Container images lead to microservices

1.2.3 Container image format

1.2.4 Container standards

1.3 Why use Podman when you have Docker?

1.3.1 Why have only one way to run containers?

1.3.2 Rootless containers

1.3.3 Fork/exec model

1.3.4 Podman is daemonless

1.3.5 User-friendly command line

1.3.6 Support for REST API

1.3.7 Integration with systemd

1.3.8 Pods

1.3.9 Customizable registries

1.3.10 Multiple transports