Corporate · onsite · online training worldwide
contact@DevOpsSchool.com· +91 99057 40781·
> Containers · DevOpsSchool Trainer

Podman Trainer

Private corporate batches, live online cohorts and 1-on-1 mentoring in daemonless, rootless containers and pods — user namespaces, Quadlet and the Kubernetes bridge — taught by a practitioner who runs it in production.

20 years across DevOps, SRE and Security · 10,000+ engineers trained · Trained teams at JPMorgan Chase, Verizon, Nokia and the World Bank

DeliveryOnline · Onsite · Hybrid
FormatsCorporate · 1-on-1 · Cohort
AgendaCustomisable
Batch size8–30 engineers
Engineers we've trained work at
JPMorgan ChaseBank of AmericaWells FargoVerizonNokiaWorld BankGE HealthcareVMwareOracleQualcommMercedes-BenzAirbusDatadogSplunkDeloitteInfosysWiproCapgemini
# who teaches it

Your Podman trainer

Rajesh Kumar

Principal DevOps Engineer & Architect

Container platformsCluster operationsProduction Kubernetes20 years in productionPrincipal / architect roles10,000+ engineers trainedM.Tech BITS Pilani25+ certifications

Rajesh teaches Podman around the two decisions that make it different from Docker rather than around the commands they share: the daemonless path from podman to conmon to crun, and the user-namespace mechanics of rootless operation — subordinate UID ranges, podman unshare, keep-id mapping, unprivileged port ranges, and SELinux :z and :Z labelling. Sessions then cover pods and the podman kube generate and kube play round trip into Kubernetes, image work split across Buildah and Skopeo including signing and multi-architecture manifests, netavark and aardvark-dns networking, and Quadlet unit files that put containers under systemd supervision on hosts with no orchestrator. Everything is demonstrated live against running rootless hosts.

Twenty years across DevOps, SRE and Security, in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe and others. He has trained engineers at JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus — more than 10,000 people personally. He teaches what he runs, not what he reads.

One practitioner, not a bench

You are booked with a named engineer, and that is who turns up. Marketplaces and larger providers rotate whoever is free, so the person who sold you the agenda is rarely the person teaching it.

The same trainer is available for the next engagement, which matters when a team builds on what it learned last time.

18,000+certified learners
500+corporate batches delivered
50+countries served
100+certification programmes
# faculty

Who delivers Podman engagements

Your batch is assigned a named trainer before it starts, and that is who teaches it. See the full faculty.

How your Podman trainer is chosen

Engagements are matched on the tool, not the calendar. For Podman that means a trainer who has run it in production — daemonless, rootless containers and pods — user namespaces, Quadlet and the Kubernetes bridge — rather than whoever is free that week. You are told who is teaching before you commit, and that person is on the discovery call that shapes the agenda.

Where a batch is large enough to need a second trainer, the pairing is declared up front. The lead trainer stays accountable for the syllabus and the assessment either way.

Rajesh Kumar

Principal DevOps Engineer & Architect

India20 yrsLead trainer

Twenty years across DevOps, SRE and Security in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe, IBM/Emptoris, Ness, MindTree and Accenture. He has trained more than 10,000 engineers personally, at organisations including JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus. He teaches what he runs, not what he reads.

Pranab Kumar

IndiaInstructorCoach

Rohit Ghatol

IndiaInstructorCoach

Amit Agarwal

IndiaInstructorCoach

Anil Kumar

IndiaInstructorCoach

Balachandran Anbalagan

IndiaInstructorCoach

Durga Prasad

IndiaInstructorCoach

Gaurav Aggarwal

IndiaInstructorCoach

Harsh Mehta

IndiaInstructorCoach

Kapil Gupta

IndiaInstructorCoach

Kunal Jain

IndiaInstructorCoach

Nikhil Gupta

IndiaInstructorCoach

# how to engage

Four ways to work with this trainer

Private corporate batch

Teams of 8–30

Custom agenda, your timezone, onsite or online, NDA-friendly.

Request a quote

1-on-1 mentoring

Individual engineers

A private instructor and a curriculum built around your goal.

₹99,999

Live & Interactive cohort

Individuals who want peers

Scheduled batch, max 8 to 10 hours of live instruction.

₹34,999

Self-paced video

Self-starters

Full LMS access — 20+ courses and 50+ tools included.

₹833/mo
# private batches

Private Podman training for your team

A private batch starts with a discovery call. We look at the stack you actually run — the CI system, the cloud, the constraints — and map the agenda onto it, so examples use your topology rather than a generic one.

Delivery is onsite at your premises, live online, or hybrid, scheduled around your release calendar rather than ours. Batches run 8 to 30 engineers.

Every attendee leaves with recordings, slides, lab repositories and a completion certificate. You receive an attendance and assessment report. Invoicing supports PO and GST.

Talk to us about a private Podman batch

What you provide vs what we bring

  • You: the room or the call, and the engineers
  • Us: trainer, agenda, labs, assessment, certificates
  • Labs: we guide your team through provisioning their own free-tier cloud environment — the skill goes with them
# the technology

What is Podman?

Podman is a container engine for OCI images, containers and pods that runs without a daemon. There is no long-lived background service holding the containers: podman run forks a small supervisor called conmon, conmon starts the OCI runtime — crun or runc — and the container becomes an ordinary child process of the session that launched it. Removing the daemon removes the root-owned socket that effectively grants root to anyone who can reach it, and it removes the failure mode where restarting the engine disturbs every container on the host.

The second design decision is rootless operation. A rootless container runs inside a user namespace, where UID 0 inside the container maps to the invoking user's subordinate UID range declared in /etc/subuid and /etc/subgid. Images and layers live under the user's home directory on fuse-overlayfs or native rootless overlay, connectivity comes from pasta or slirp4netns rather than a root-owned bridge, and privileged ports and certain kernel capabilities are genuinely unavailable rather than merely discouraged. Knowing which of those limits are real and which are configuration is most of the distance between a working rootless deployment and a frustrated one.

Around that core Podman is deliberately unbundled. Buildah builds images, Skopeo copies, inspects and signs them across registries and transports, and CRI-O runs the same containers under Kubernetes. Pods are a first-class primitive rather than a metaphor: containers in a pod share a network namespace through an infra container, exactly as they do in Kubernetes, and podman kube generate and podman kube play move workloads between a laptop and cluster YAML. For long-lived services, Quadlet turns a declarative unit file into a generated systemd service, so containers are supervised by the same init system as everything else on the host.

Why this skill matters now

The container engine stopped being a free choice the moment security baselines caught up with it. A root-owned daemon socket is a privilege-escalation path that appears in every serious host hardening review, and CI systems that mount that socket into build jobs hand root to whatever the build executes. Podman's daemonless, rootless model removes the finding rather than documenting an exception for it.

Distribution decisions have pushed the same way. Red Hat Enterprise Linux and Fedora ship Podman, Buildah and Skopeo as the supported container toolchain, so any estate standardised on RHEL now needs engineers fluent in Podman rather than engineers who translate Docker commands and hope. The CLI compatibility makes the first day easy and the second week hard: the commands look identical, but user namespaces, SELinux labelling, rootless networking and systemd integration behave differently enough that surface familiarity produces confident mistakes.

There is also a growing class of workload that never reaches an orchestrator — edge nodes, appliances, single-tenant servers, build hosts — where systemd plus Quadlet is the whole platform. That is the gap Podman fills, and it is a skill organisations hire for specifically.

Podman training
# outcomes

What your team can do afterwards

Explain the daemonless execution model — podman, conmon and the OCI runtime — and what it changes about host security
Run production workloads rootless: subordinate UID ranges, keep-id mapping, unprivileged ports and lingering user services
Diagnose the bind-mount, ownership and SELinux failures that rootless containers produce, using podman unshare and the audit log
Use pods as a first-class primitive and move workloads between Podman and Kubernetes with kube generate and kube play
Build images with Containerfiles and with Buildah scripts, and move, inspect and sign them with Skopeo
Choose correctly between netavark bridge, macvlan, host and rootless pasta or slirp4netns networking
Run containers as supervised systemd services with Quadlet, including auto-update and healthcheck-driven restart
Migrate an existing Docker workflow — including docker-compose files and CI jobs — onto Podman without privileged mode
# curriculum

7 modules. Live demos in a real lab, not slides.

01Containers without a daemonLive & Interactive5 hrs · 2 assignments · 1 capstone

What Podman replaces, and why the difference is architectural rather than cosmetic. The conmon supervisor, the OCI runtime beneath it, and how a container ends up as a child of your shell instead of a system service — followed by an honest comparison with the Docker client-daemon split, including what you give up.

Topics: The daemonless execution model: podman, conmon, crun and runc · OCI image and runtime specifications · Podman compared with the Docker client-daemon architecture · Why the Docker socket is a privilege-escalation path · Podman, Buildah, Skopeo and CRI-O as separate tools with separate jobs · containers/storage and containers/image as shared libraries · Reading the effective configuration with podman info

  • Assignments: (1) Trace a running container back to its conmon and OCI runtime processes; (2) Compare the process tree for the same workload under Docker and under Podman
  • Capstone: Write an architecture note justifying Podman or Docker against a stated host security policy
02Installation, configuration and the Docker-compatible CLILive & Interactive5 hrs · 2 assignments · 1 capstone

Getting a usable environment on RHEL, Fedora, Debian, macOS and Windows, then the command surface. Because the CLI is deliberately Docker-compatible, this module spends its time on where the two diverge rather than re-teaching container basics.

Topics: Installing on RHEL and Fedora, Debian and Ubuntu, macOS and Windows · podman machine and the managed Linux VM on macOS and Windows · containers.conf, storage.conf and registries.conf and their precedence · Short-name resolution and unqualified-search-registries · Container lifecycle: run, start, stop, rm, exec, logs, inspect · Where Podman diverges from Docker: restart policy, healthchecks, default networks · The Podman REST API socket and its Docker-compatible endpoint · podman-docker and aliasing docker to podman safely

  • Assignments: (1) Configure registries.conf so short image names resolve deterministically; (2) Run an existing docker-compose file against the Podman API socket
  • Capstone: Deliver a reproducible Podman workstation configuration you keep for the rest of the course
03Rootless containers and user namespacesLive & Interactive5 hrs · 2 assignments · 1 capstone

The module that decides whether rootless is viable for your estate. Subordinate UID and GID ranges, what UID 0 inside the container actually is on the host, why file ownership across a bind mount looks wrong, and which capability and port restrictions the kernel genuinely enforces.

Topics: User namespaces and the /etc/subuid and /etc/subgid mapping · Rootless storage: fuse-overlayfs, native rootless overlay and the home directory layout · podman unshare for working inside the mapping · --userns=keep-id, auto and nomap and when each is correct · Privileged ports and net.ipv4.ip_unprivileged_port_start · Rootless networking with pasta and slirp4netns · Capabilities, seccomp profiles and SELinux relabelling with :z and :Z · What rootless genuinely cannot do · loginctl enable-linger and services that outlive the login session

  • Assignments: (1) Serve traffic on a low port from a rootless container and justify every option required; (2) Fix a bind mount whose files appear owned by nobody inside the container
  • Capstone: Deliver a rootless deployment of a multi-container application with no root privilege on the host
04Pods and the bridge to KubernetesLive & Interactive5 hrs · 2 assignments · 1 capstone

A Podman pod is a Kubernetes pod, not an analogy for one. The infra container and the shared network namespace, port publishing at pod level rather than container level, and the round trip between running something locally and describing it as cluster YAML.

Topics: Creating and managing pods; the role of the infra container · Shared namespaces: network, IPC, UTS and optionally PID · Publishing ports at pod level and what that means for the containers inside · podman kube generate: containers and pods to Kubernetes YAML · podman kube play: running Kubernetes YAML on a single host · ConfigMaps, secrets, volumes and persistent volume claims under kube play · Where local pods stop and a real cluster begins · CRI-O as the cluster-side runtime for the same images

  • Assignments: (1) Convert a Compose application into a pod, then into Kubernetes YAML; (2) Run the generated manifest with kube play and account for every difference
  • Capstone: Move one application from local pod to cluster manifests without hand-writing the YAML
05Building with Buildah, moving with SkopeoLive & Interactive5 hrs · 2 assignments · 1 capstone

Podman builds images, but Buildah is where construction gets interesting — including building an image with no Containerfile at all. Then Skopeo for copying, inspecting and signing images across registries and transports without ever pulling them into local storage.

Topics: podman build, Containerfile and Dockerfile compatibility · Multi-stage builds, layer caching and build arguments · Buildah primitives: from, run, copy, config, commit · Scripted builds with Buildah and no Containerfile · Rootless and unprivileged builds inside CI containers · Skopeo copy, inspect, list-tags, sync and delete · Transports: docker://, containers-storage:, oci:, dir: and docker-archive: · Image signing with sigstore and GPG, and enforcing policy.json · Multi-architecture images with podman manifest and buildah manifest

  • Assignments: (1) Build the same image twice — once from a Containerfile, once from a Buildah script; (2) Copy an image between two registries with Skopeo without pulling it locally
  • Capstone: Produce a signed multi-architecture image plus a policy that refuses unsigned pulls
06Networking and storageLive & Interactive5 hrs · 2 assignments · 1 capstone

Netavark and aardvark-dns replaced CNI as Podman's default network stack, and the rootful and rootless paths differ in ways that matter operationally. Then volumes, mounts and SELinux labelling — the origin of most bind-mount failures on Red Hat systems.

Topics: Netavark and aardvark-dns, and migrating from the CNI plugins · Bridge, macvlan, ipvlan and host network drivers · Container name resolution inside a user-defined network · Rootless networking: pasta versus slirp4netns, and their trade-offs · Port publishing and firewalld interaction · Named volumes, bind mounts and tmpfs mounts · Volume import, export and volume plugins · SELinux contexts, the :z and :Z mount options, and container_file_t · Diagnosing connectivity with podman network inspect and nsenter

  • Assignments: (1) Connect three containers on a user-defined network with working DNS resolution; (2) Diagnose an SELinux-denied bind mount from the audit log and fix it correctly
  • Capstone: Design network and storage for a stateful multi-container service running rootless
07Production hosts: Quadlet, systemd and operationsLive & Interactive5 hrs · 2 assignments · 1 capstone

The part that turns Podman into an operations tool. Quadlet unit files and the systemd services generated from them, auto-update against registry digests, healthchecks that systemd acts on, and the logging, resource-limit and upgrade story for hosts that will never have an orchestrator.

Topics: Quadlet unit types: .container, .pod, .volume, .network, .kube and .build · Generated systemd services and the deprecated podman generate systemd path · User services, linger and reliable start at boot · podman auto-update and the io.containers.autoupdate label · Healthchecks, on-failure behaviour and restart policy under systemd · Running services under a dedicated unprivileged system account · Logging to journald and choosing a log driver · cgroups v2 resource limits applied through systemd · podman system prune, df, reset and storage reclamation · Upgrading Podman and migrating storage across major versions

  • Assignments: (1) Deploy a Quadlet-managed service that survives a reboot as a non-root user; (2) Configure auto-update, trigger it, and roll back to the previous image
  • Capstone: Deliver a production host running a multi-container application entirely rootless under systemd

Need this mapped to your stack?

We rebuild the agenda around the tools you actually run.

Request a custom agenda
# hands-on

Labs and capstones your engineers actually build

LAB · ROOTLESS

Serve a low port with no root anywhere

Run a web service rootless on a privileged port, then justify every mapping, sysctl and capability decision that made it possible.

rootlessuser namespacesports
LAB · NAMESPACES

Why your bind mount says nobody

Reproduce the classic rootless ownership failure across a bind mount, then fix it correctly with podman unshare and keep-id rather than chmod 777.

subuidunshareselinux
LAB · PODS

Compose file to Kubernetes YAML

Take a multi-container Compose application, run it as a Podman pod, generate Kubernetes manifests from it and replay them with kube play.

podskube playkubernetes
LAB · IMAGES

Build an image without a Containerfile

Construct the same image twice — declaratively with a Containerfile and imperatively with a Buildah script — then sign it and copy it with Skopeo.

buildahskopeosigning
LAB · SYSTEMD

Quadlet service that survives a reboot

Write Quadlet units for a container, a volume and a network, enable linger, reboot the host and prove the service came back unaided.

quadletsystemdlinger
CAPSTONE · HOST

A rootless production host

Deliver a hardened single host running a multi-container application rootless under systemd, with auto-update, healthchecks, journald logging and a documented rollback.

capstonerootlessauto-update
# ecosystem

The tools Podman sits next to

Buildah
Skopeo
CRI-O
systemd
Quadlet
crun
Kubernetes
OpenShift
Red Hat Enterprise Linux
Docker
Ansible
Trivy

Who this is for

  • Linux and platform engineers on RHEL, Fedora or Debian estates where Podman is the supported engine
  • Docker users moving to a daemonless and rootless container engine
  • Security engineers eliminating the root-owned container socket from build and CI hosts
  • SREs running containers on individual hosts under systemd rather than under an orchestrator
  • Developers building and testing images locally before they reach a Kubernetes cluster
  • CI engineers who need container builds inside containers without privileged mode

Pre-requisites

  • Comfortable on a Linux command line — processes, users, permissions and systemd units
  • A working idea of what a container is; prior Docker exposure helps but is not required
  • Basic networking: ports, DNS and how a request reaches a service
  • Some shell or Python scripting ability
  • A Linux host or VM running RHEL, Fedora, Debian or Ubuntu with cgroups v2, where Podman can be installed
# pricing

Straightforward pricing

Every plan includes 1 year of full LMS access — not just this course, the entire DevOpsSchool LMS: 20+ courses, 50+ tools, videos, quizzes, assignments and projects.

Self-paced video

₹833/mo

Billed yearly at ₹9,996

Enroll now

1-on-1 mentorship

₹99,999

Full program, private instructor

Enroll 1-on-1

Corporate / private batch

8–30 engineers · custom agenda · onsite or online · PO and GST invoicing

Get a custom quote

Refunds. If we cancel or postpone a cohort, you get a full refund within 15 days. There is no money-back guarantee otherwise.

Terms. Course material remains licensed to the attendee. Read the terms.

Your data. We don't share it with third parties. Privacy policy.

Every attendee gets a verifiable certificate

  • Issued per attendee on completion
  • Verifiable at devopsschool.com/certificates
  • Hard copy available on request
  • Corporate batches receive an attendance and assessment report
DevOpsSchool

Podman Training

Certificate of completion

# feedback

What engineers say

4.4 / 5 from 26 reviews on Trustpilot.

★★★★☆
Helped to understand more on overall DevOps concepts.
Pankaj Malhotra · Trustpilot
★★★★★
Got good lab sessions which kept the new DevOps tool learnings to the point and it helped a lot in my career.
robin son · Trustpilot
★★★★★
Very detailed explanation and has lots of patience in attending the questionnaire. Thanks again for your wonderful sessions.
Uttam Samudrala · Trustpilot
★★★★★
Good discussion, helped us to understand different tools in SRE.
Prashant Saxena · Trustpilot
★★★★★
I took Terraform training with the tutor named Mithilesh. I requested to tailor the course curriculum for my needs. He did an excellent job of showing me how to write the Terraform script per the instructions provided.
jason smith · Trustpilot
★★★★★
My experience with the AIOps training was positive. The course covered important topics in a structured way, and Rajesh Kumar explained the concepts patiently. I found the practical aspects particularly helpful because they made the technical content easier to understand.
AARTI KUMARI · Trustpilot
# comparison

Why a named practitioner beats a marketplace listing

What mattersYouTube + blogsGeneric online courseFreelance marketplaceDevOpsSchool
Named practitionerNoRarelyVaries per bookingYes — same trainer each time
Production experienceUnknownUnknownUnverified20 years, named employers
Custom agendaNoNoSometimesBuilt from your stack
Onsite deliveryNoNoSometimesYes
Lab environmentNoneSandbox that expiresVariesYour own cloud — skill goes with you
AssessmentNoneQuizRarelyAssignments + capstone per module
Per-attendee certificatesNoSometimesRarelyYes
Corporate invoicingNoLimitedVariesPO and GST
Post-training supportNoneForum, time-limitedNoneLifetime forum access
# questions

Frequently asked

Do attendees need to know Docker first?
No. Prior Docker experience shortens the first day because the CLI is deliberately compatible, but it is not assumed. If the group is Docker-fluent we compress the lifecycle material and spend the recovered time on user namespaces, SELinux and Quadlet.
Is rootless Podman actually production-ready?
For most single-host workloads, yes — and the course covers exactly where it is not. Privileged ports, some device access, certain filesystem and network features, and workloads that need a real bridge with host-routable addresses all need deliberate handling, and we work through each rather than asserting rootless is universally fine.
Do our docker-compose files still work?
Usually. Podman exposes a Docker-compatible REST socket that docker-compose can be pointed at, and podman compose wraps the same idea. We run your own compose files in the lab and deal with the specific features that do not translate, rather than promising drop-in parity.
How does this differ from your Docker course?
The Docker course teaches container fundamentals — namespaces, cgroups, images, registries and the runtime layer. This one assumes that ground and concentrates on what is unique to Podman: daemonless execution, rootless user-namespace mechanics, pods, the Buildah and Skopeo split, and systemd integration through Quadlet.
Can the agenda be customised for our stack?
Yes — that is the normal case for a private batch. We start with a discovery call, look at your distribution, registry, CI system and host hardening policy, and rebuild the module list around them. Examples then use your images and your constraints.
How long does a private Podman batch take?
Two to three days. Two days covers architecture, the CLI, rootless operation, pods and image building; adding Quadlet, systemd operations, signing and multi-architecture work makes three.
Do you deliver onsite?
Yes. Private batches run onsite at your premises, live online, or hybrid. You provide the engineers and the schedule; we bring the trainer, agenda, labs, assessment and certificates.
What lab environment do we need?
Attendees provision their own environment — a free-tier AWS, Azure or GCP instance, or a local VM — running a distribution with cgroups v2. We guide them through it. We deliberately do not hand out temporary sandboxes, because the environment they build is the one they keep.
Does this cover Kubernetes?
Only where Podman touches it: pods as a shared primitive, kube generate and kube play, and CRI-O as the cluster-side runtime. It is not a Kubernetes course; if you need both we run them as consecutive tracks.
What size are batches?
Private corporate batches run 8 to 30 engineers. Public Live & Interactive cohorts are capped at 10 so everyone gets time with the trainer.
Do attendees get a certificate?
Yes — every attendee receives a completion certificate, verifiable at devopsschool.com/certificates. Corporate batches also receive an attendance and assessment report.
What is your refund position?
If we cancel or postpone a cohort, you receive a full refund within 15 days. There is no general money-back guarantee, and GST and gateway fees are not refunded.

Still deciding?

Tell us the team, the stack and the timeline. You'll get a straight answer, not a sales sequence.

Talk to an advisor
# ready when you are

Book a Podman trainer — or ask a question first.

  • No spam, no drip sequence
  • Syllabus in 60 seconds
  • A human reply within one business day

Prefer to call or email?

More ways to reach us on the contact page.

Talk to an advisorRequest a quote