Docker vs Podman: Choosing the Right Engine
Key Points
- Docker popularized containerization, using Dockerfiles to build OCI‑compatible images that are run by the Docker Engine’s background daemon (the Docker daemon).
- The Docker daemon operates with root privileges, which can be a security risk and may require elevated access in many organizations.
- Podman provides a daemon‑less container engine that runs containers without needing root, emphasizing improved security and user‑level operation.
- Like Docker, Podman works with OCI‑standard images and containers, but it also adds native support for Kubernetes‑style pods, enabling multiple containers to be managed as a single unit.
- Both tools share similar concepts (images, containers, registries), yet the key distinction lies in Docker’s client‑server model with a central daemon versus Podman’s rootless, daemon‑free architecture.
Full Transcript
# Docker vs Podman: Choosing the Right Engine **Source:** [https://www.youtube.com/watch?v=Xx588nbshlM](https://www.youtube.com/watch?v=Xx588nbshlM) **Duration:** 00:06:28 ## Summary - Docker popularized containerization, using Dockerfiles to build OCI‑compatible images that are run by the Docker Engine’s background daemon (the Docker daemon). - The Docker daemon operates with root privileges, which can be a security risk and may require elevated access in many organizations. - Podman provides a daemon‑less container engine that runs containers without needing root, emphasizing improved security and user‑level operation. - Like Docker, Podman works with OCI‑standard images and containers, but it also adds native support for Kubernetes‑style pods, enabling multiple containers to be managed as a single unit. - Both tools share similar concepts (images, containers, registries), yet the key distinction lies in Docker’s client‑server model with a central daemon versus Podman’s rootless, daemon‑free architecture. ## Sections - [00:00:00](https://www.youtube.com/watch?v=Xx588nbshlM&t=0s) **Docker vs. Podman Overview** - Cedric Clyburn, a Red Hat developer advocate, introduces Docker’s core components and concepts as a prelude to comparing it with Podman. ## Full Transcript
today I'm thrilled to discuss a
particularly Hot Topic Docker versus
podman which one should you choose you
know what are the differences well today
I'm going to help you make that decision
my name is Cedric Clyburn I'm a
developer Advocate at red hat and let's
just jump right in and start talking
about Docker now Docker it's a name
synonymous with containers Docker helped
Pioneer containerization technology to
what it is today and has made containers
one of the most important and most
popular developer tools that we have
today so containers can help us to take
and package together our code our
libraries our runtime
All in One Singular unit that we can
then deploy in a variety of different
environments but essentially making our
life easier and fundamentally changing
the way that we deploy and manage
applications so thanks Docker now Docker
is made up of several different
components you might have heard of some
before such as the docker file which is
a set of instructions in order to build
images of course we've got the images
which then contain everything that we
need to run a container
now the container is run by a special
part of Docker called the docker engine
now the docker engine is what's running
in the background when you're using
Docker so you can think about the
architecture like this here we have our
CLI our Docker desktop application that
we're using by chance and when we're
doing different actions like Building
images or pushing them or running
containers what's actually happening in
the background is we're using a
background Daemon process now what is
this this is a process that's doing all
the heavy lifting for us for Docker so
it's running the containers it's working
with Registries it's pulling down images
it's doing all the heavy lifting this is
what's known as a client server approach
now there are some limitations for the
docker Daemon in the background because
it is running on your system on root so
that means if you're in an organization
and you don't have root access or pseudo
access you'll have to ask for that in
order to be able to run uh Docker
commands Additionally the docker Daemon
running on your system uh with root can
be a security loophole however that's
where podman comes in podman is also a
container engine for working with
containers and containerized
applications however it has a focus on
security and what's unique about it is
it doesn't have this Central Daemon so
we'll talk about this here in a second
but podman is comprised of the same
components so we've got images
we've got containers
and keep in mind these are all based
around something called the oci this is
the open container initiative which
essentially just defines how containers
and containerization Technologies should
work in addition to images containers
and everything else that Docker has we
also have the addition of PODS just like
the name so pods is a kubernetes concept
that essentially allows us to have
multiple containers in one coupled unit
where they're sharing tightly the same
volume and network so maybe this is a
proxy and this is our actual JavaScript
application now we can take this and put
it into a pod so podman allows us to
extract these uh manifest these yaml
files and actually deploy them into our
kubernetes cluster so it makes the
transition to kubernetes a lot easier in
addition just like Docker we've got the
podman engine
but as mentioned before it works a
little differently so instead of having
this Central Daemon process and
connecting to it from our client we're
using the client directly and when we're
working with new containers what's
happening is podman is forking itself
and this new child process then becomes
the container so it works with a
daeminist architecture which allows it
to run by default in a rootless fashion
now you'll notice again that these
components are very similar based on the
oci standards this makes it very easy to
go from Docker to podman and podman to
Docker or to learn both so what would be
a Docker push a Docker pool would just
be a podman push or a podman pool so
this makes it very easy when working
with both of these now let's take a look
at actually the differences in between
podman and Docker so if you're looking
for a Daemon list container engine
podman is right for you but Docker is
still using the Daemon in the background
now this also allows for rootless by
default however docker here doesn't do
this by default but it can with some
limitations now if you want Docker
specific features such as swarm well
Docker is here for that which helps you
do container orchestration now if you're
looking for multi-container applications
with compose both Docker has Docker
compose and podman has podman compose so
both of them support it now if you're
looking at running this container engine
on whether it be Mac windows or your
favorite distribution of Linux both
Docker has the docker desktop and the
docker CLI and podman has the podman
desktop and podman CLI so it doesn't
matter if you're a visual person or you
like the command line both container
engines could be the right pick for you
but how do we really determine which one
that we should use well let's start off
with Docker Docker as mentioned before
is the Pioneer and the industry standard
for containerization now that means they
have more documentation a larger user
group and more guides out there if
you're getting started with docker
additionally there are some features
that are just native to Docker such as
Docker swarm that podman simply doesn't
have now podman can make it super easy
to get started without needing a Daemon
and get set up moving not only just
container images but also moving to
kubernetes so if you're looking to get
started with kubernetes or move your
workload to kubernetes as an
orchestrator podman might be the right
choice for you in addition for running
containers in a rootless fashion and not
having a Daemon it's more focused on
security so both Docker and podman are
fantastic container engines so now you
know the differences between Docker and
podman now I have a question for you are
you team Docker or team podman let us
know down in the comments
hey thanks for watching this video as
always don't forget to like And
subscribe and we'll see you in the next
one