
Install Skopeo via your distributions package manager.
Explore where container images are stored across tools, including docker daemon paths like /var/lib/docker/overlay2. See how skopeo copies images between stores and creates docker-archive tar files with manifest.json and layers.
Explore the container image format specification (image-spec) and how OCI images are structured, including index.json, manifests, config, layers, digests, and whipeout files, with a hands-on look inside an httpd image.
Discover what a container bundle contains: a root filesystem and a runtime-spec config.json, and how to unpack an OCI image into a bundle using umoci with rootless options.
Explore how a container runtime like runc binds cgroups, namespaces, and security mechanisms like SELinux and Linux capabilities to start a container process, and how to install runc via containerd.
Explore crun, a fast, lightweight OCI runtime and C library that matches runc; run an httpd container and access its web server on port 8091, with state at /run/user/1000/crun/test/config.json.
Recap the open container initiative standards, including image-spec and runtime-spec, and show how container bundles, umoci, skopeo, and runtimes like runc and crun reveal OCI-compliant container concepts without Docker.
Discover how container images serve as a packaging concept and standard for container bundles, and how Buildah, a dedicated image builder, simplifies building them compared to Docker commands.
Explore how Dockerfile defines the build process for container images and why the community suggests renaming to Containerfile to embrace a standards-oriented approach, with tools like Buildah already recognizing it.
Discover how Buildah enables rootless container workflows with no daemon, using user-scoped images and namespaces to run containers securely without root privileges, and Docker rootless mode.
Understand container managers as complete solutions to run containers, including network management, persistent volumes, logs and metrics, and support for multi-container environments with Podman and CRI-O.
Explore containerd’s role as the engine behind container managers, not a user-facing tool. Learn how Docker and AWS ECS leverage containerd and why most Docker features originate there.
Explore Podman as a drop-in replacement for Docker that enables rootless containers and user-scoped images. Utilize Buildah for images, shared storage, and runtime options like runc or crun, all OCI-compliant.
Podman builds and runs container images from a Containerfile using podman build and podman run, sharing storage with buildah and offering docker compatibility via podman-docker in rootless Linux namespaces.
Explore Podman's pod architecture with infra containers, pod networking, and pod-wide port handling; learn to create, manage, and generate systemd units or Kubernetes yaml, and enable auto-update with labels.
When someone wants to say "tissue", quite often they would say "Kleenex". When someone wants to say "containers", most likely they would say "Docker" instead.
We realise that "Kleenex" is just a widely accepted name for a particular type of a paper product. If we will see a tissue from another brand, we won't get confused, we will still know what to do with it.
But is that the same with Docker? What do we mean by saying "Docker container"? Is it some generic container or is it something Docker specific? What about the "Docker image"? Do we know what the real tissue behind this is?
We've all been using Docker for so long that we stopped thinking "container" and instead we think "Docker". In the Dockerless course you will learn to see beyond Docker - and try out a lot of new tools.
We'll talk about open container standards and investigate them on practice by using half a dozen various container tools;
We will build container images and run containers - all without Docker;
We will also learn why you don't need a container image to run a container, and why many big players, including AWS, RedHat and Google, move away from Docker - and what they rely on instead;