Difficulty: Intermediate
Estimated Time: 20-25 minutes


This lab is focused on understanding some of the container standards that govern this space. This will help you better architect your own environments, feeling more confident about where to invest.

By the end of this lab you should be able to:

  • Explain the Image, Runtime, and Distribution specifications
  • Have a basic understanding of the major metadata files
  • Be able to start a container from scratch


  • An overview of the three OCI specifications
  • The OCI image specification
  • The OCI runtime specification
  • The OCI reference implementation of the runtime specification (runc) and how to start a container

Other Material

Start Scenario

Once you have watched the background video or went throught the presentation, continue to the exercises

In this course you learned:

  • Multi-Container Applications: The classic two-tiered, wordpress application
  • Cluster Performance: Scaling applications horizontally with containers
  • Cluster Debuggin: Troubleshooting in a distributed systems environment

Other Material

Also, if you have any questions tweet us at:

@RedHat @OpenShift @CoreOS @fatherlinux

Linux Container Internals 2.0 - Lab 6: Container Standards

Step 1 of 4

Overview of The OCI Specifications

The goal of this lab is to get a basic understanding of the three Open Containers Initiative (OCI) specificaitons that govern finding, running, building and sharing container - image, runtime, and distribution. At the highest level, containers are two things - files and processes - at rest and running. First, we will take a look at what makes up a Container Repository on disk, then we will look at what directives are defined to create a running Container.

If you are interested in a slightly deeper understanding, take a few minutes to look at the OCI work, it's all publicly available in GitHub repositories:

Now, lets run some experiments to better understand these specifications.