chapter one

1 Podman: next generation container engine

 

This chapter covers

  • What is Podman
  • Advantages of 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 Podman solves some problems inherent in Docker—the most significant being 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: 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 Podman when you have Docker?

1.3.1 Rootless containers

1.3.2 Fork/Exec Model

1.3.3 Daemon-less

1.3.4 User Friendly Command Line

1.3.5 Support for REST API

1.3.6 Integration with systemd

1.3.7 Pods

1.3.8 Customizable Registries

1.3.9 Multiple transports

1.3.10 Complete customizability

1.3.11 User Namespace support

1.4 When not to use Podman

1.5 Summary