GL340 · 5 days · 13+ hrs hands-on labs

Docker

Available for RHEL

Docker turned containers into everyday infrastructure, and the administrators who run it well are the ones who understand what sits underneath the CLI. This course builds that understanding in both directions: the Linux kernel features that make containers possible, namespaces, cgroups, OverlayFS, and the OCI runC runtime, and the day-to-day Docker workflow that rides on top of them. Because Red Hat Enterprise Linux 10 ships Podman rather than Docker, students install Docker Engine 29 from Docker's own packages and learn how the RHEL container landscape, including Podman, containerd, and CRI-O, relates to what they are running.

Coverage follows the full lifecycle of a containerized application. Students configure the Docker daemon through systemd drop-ins and daemon.json, protect the control socket with TLS certificates signed by a local CA, and apply capability, user, filesystem, SELinux, and seccomp restrictions to running containers. Image work spans registry operations, promotion by digest, multi-architecture platform images, commit and diff, save, load, export, and import, then moves into Dockerfile authoring in depth: build context, layer caching and cache mounts, ENTRYPOINT and CMD forms, HEALTHCHECK probes, and multi-stage builds that cut both image size and attack surface. Storage covers named volumes, bind mounts, tmpfs, and volume drivers. Orchestration covers YAML authoring and Docker Compose service sets, then Swarm mode on a real classroom cluster: services, rolling updates and rollback, stacks, secrets, quorum, and overlay networking. Networking and logging round out the Docker stack, from bridge networks, DNS resolution, and published ports through syslog, journald, Graylog, Fluentd, Splunk, and cloud provider log drivers. A closing chapter runs Podman beside Docker on the same host: the same images under both engines, rootless containers, Podman secrets without a swarm, and a web site served as a Quadlet unit under systemd.

Thirty guided lab exercises anchor the material, with hands-on work in every chapter: building containers by hand with runC, securing the daemon with TLS, hardening container privileges, promoting images by digest, optimizing build size and cache behavior, rolling a Swarm service forward and back, managing Swarm secrets, and publishing services on private networks. An appendix takes students through running their own registry, securing it with TLS and htpasswd authentication, and signing images with Cosign, now that Docker Content Trust has left the Docker 29 command line.

Who Should Attend

System administrators, DevOps engineers, site reliability engineers, and platform engineers responsible for deploying, securing, and operating containerized applications, along with developers who package their own applications as container images and need to understand how those images behave on enterprise Linux hosts.

Skills You'll Gain

Explain container isolation using Linux namespaces, cgroups, OverlayFS layering, and the OCI runC runtime
Install the Docker engine on RHEL 10 from Docker's own packages and secure the control socket with TLS certificates
Configure the Docker daemon through systemd units and daemon.json, covering the containerd image store, registries, networking, and logging defaults
Create, run, and manage container lifecycles with CPU and memory resource limits and restart policies
Restrict container privileges using POSIX capabilities, user and filesystem controls, no-new-privileges, SELinux, and seccomp
Manage images across registries with pull, push, promotion by digest, prune, commit, save, load, export, import, and multi-architecture platform images
Build images with Dockerfile instructions, ENTRYPOINT and CMD forms, and HEALTHCHECK probes
Shrink images and speed rebuilds using multi-stage builds, build context control, cache mounts, and layer cache management
Configure persistent storage with named volumes, bind mounts, tmpfs mounts, and volume drivers
Deploy multi-container applications with Docker Compose, then run them on a Swarm cluster as services and stacks with secrets, rolling updates, and rollback
Configure bridge and overlay networking, private networks, DNS resolution, and published ports
Route container logs to syslog, journald, Graylog, Fluentd, Splunk, and cloud log services
Run Podman beside Docker, including rootless containers, Podman secrets, and Quadlet units managed by systemd
Run a private registry with TLS and htpasswd authentication, and sign and verify images with Cosign

Chapters & Labs

30 labs · 13+ hours hands-on
  1. Container Technology Overview 2 labs · 45 min
  2. Installing Docker 2 labs · 55 min
  3. Managing Containers 3 labs · 55 min
  4. Managing Images 3 labs · 70 min
  5. Creating Images with Dockerfile 3 labs · 85 min
  6. Docker Volumes 2 labs · 45 min
  7. Docker Compose 3 labs · 85 min
  8. Docker Swarm 4 labs · 125 min
  9. Docker Networking 3 labs · 70 min
  10. Docker Logging 1 lab · 25 min
  11. Introduction to Podman 2 labs · 62 min

Appendices

  • Docker Registry

Prerequisites

Proficiency with the Linux command-line interface and a broad understanding of Linux system administration, including systemd services, package management, filesystems, and basic networking. GL120 (Linux Fundamentals) or equivalent experience recommended.