**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.*
...