**Why is it important to understand the terminology for container technology?** It is important to understand the terminology for container technology *because it can be difficult to understand the key differences between Docker and other container engines or understand what the Open Container Initiative is doing to standardize container technology.* # Background **What are some common terms that can cause confusion for newcomers to containers?** Some common terms that can cause confusion for newcomers to containers include: * Container. * Image. * Container Image. * Image Layer. * Registry. * Repository. * Tag. * Base Image. * Platform Image. * Layer. ... # Containers 101 **What are the two states a container can be in?** The two states a container can be in are: 1. Resting. 2. Running. **What is a container when it is resting?** When a container is resting, it is *a file, or set of files, which are saved on the disk.* > **What are the two terms that refer to a container when it is resting?** > The two terms that refer to a container when it is resting are: > 1. Container Image. > 2. Container Repository. **What happens when you run the command to start a container?** When you run the command to start a container, *the Container Engine unpacks the required files and meta-data, then hands them off to the Linux kernel.* > **What is a similarity between starting a normal Linux process and starting a container?** > A similarity between starting a normal Linux process and starting a container are that *both require making an API call to the Linux kernel.* > > **What is the difference between starting a normal Linux process and starting a container?** > The difference between starting a normal Linux process and starting a container is that *the API call to the Linux kernel when starting the container initiates extra isolation and mounts a copy of the files that were in the container image.* **What is a container when it is running?** When a container is running, it is *a normal Linux process.* **What defines and governs the process for starting containers and the image format on the disk?** The process for starting containers and the image format on the disk is defined and governed by *standards.* **What are three examples of competing Container Image formats?** Three examples of competing Container Image formats are: 1. Docker. 2. Appc. 3. LXD. **Which initiative for Container Image format standards is the industry moving towards?** [(1)](https://opencontainers.org/faq/) The initiative for Container Image format standards that the industry is moving towards is *the Open Container Initiative (OCI).* > **What is another term for the Open Container Initiative?** > Another term for the OCI is *Open Containers.* **What is included in the scope of the Open Container Initiative?** [(1)](https://github.com/opencontainers/image-spec/blob/master/README.md) Included in the scope of the Open Container Initiative is *a Container Image Format Specification.* > **What two things does the Container Image Format Specification from the Open Container Initiative define?** > The two things that the Container Image Format Specification from the Open Container Initiative defines are: > 1. The on-disk format for container images. > 2. The meta-data which defines things like hardware architecture and the operating system. **What is the benefit of having an industry wide container image format?** The benefit of having an industry wide container image format is that *it enables interoperability between tools for signing, scanning, building, running, moving, and managing container images.* **What are five examples of competing Container Engines?** [(1)](https://github.com/docker/docker/blob/master/image/spec/v1.md) [(2)](https://www.redhat.com/en/technologies/cloud-computing/openshift) [(3)](https://ubuntu.com/blog/lxd-2-0-image-management-512) Five examples of competing Container Engines include: 1. Docker. 2. CRI-O. 3. Railcar. 4. RKT. 5. LXC. **What does a Container Engine do with a Container Image?** With a Container Image, a Container Engine *turns it into a Container.* > **What is the process of turning Container Images into Containers governed by?** [(1)](https://github.com/opencontainers/runtime-spec/blob/master/README.md) > The process of turning Container Images into Containers is governed by *the Container Runtime Specification from the OCI.* > > **What does the Open Containers Initiative (OCI) also include alongside the Container Runtime Specification?** [(1)](https://github.com/opencontainers/runc) > Alongside the Container Runtime Specification, the OCI also includes *a Reference Runtime Implementation called RunC.* ...