Concepts that led to the development of container-based virtualization began to emerge when the UNIX operating system became publicly available in the early 1970s. Container technology development expanded in many areas until 2013, when Solomon Hykes released the Docker code base to the open-source community. The Docker ecosystem is made up of the container runtime environment along with tools to define and build application containers and to manage the interactions between the runtime environment and the host operating system.
Two Docker runtime environments—the Community Edition and the Enterprise Edition—are available. The Community Edition is free and comes with best-effort community support. For our use-case testing, we used the Enterprise Edition, which is fitting for most organizations using Docker in production or business-critical situations. The Enterprise Edition requires a license that is based on the number of cores in the environment. Organizations likely will have a mix of licensed and nonlicensed Docker runtimes and should implement safeguards to ensure that the correct version is deployed in environments where support is critical.
A Docker registry is supporting technology that is used for storing and delivering Docker images from a central repository. Registries can be public, such as Docker Hub, or private. Docker users install a local registry by downloading a compressed image that contains all the necessary container components that are specific to the guest operating system and application from Docker Hub. A local registry can mitigate many of the challenges that are associated with using a public registry, including high latency during image downloading, depending on Internet connection speed and availability. Although Docker Hub provides the option for users to upload private images, a local private registry might offer both better security and less latency for deployment.
Private registries can reside in the cloud or in the local data center. Provisioning speed and provisioning frequency are two factors to consider when determining where to locate a private registry. Private registries that are hosted in the data center where they will be used benefit from the speed and reliability of the LAN, which means images can be provisioned quickly in most cases. For this validation, we implemented a local private registry to enable fast provisioning without the complexities and cost of hosting in the cloud.