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 on many fronts 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 that are using Docker in production or business-critical situations. The Enterprise Edition requires purchasing a license that is based on the number of cores in the environment. Organizations likely will have 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 from Docker Hub a compressed image that contains all the necessary container components that are specific to the guest operating system and application. Depending on Internet connection speed and availability, a local registry can mitigate many of the challenges that are associated with using a public registry, including high latency during image downloading. Docker Hub does provide the option for users to upload private images. However, 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 our use cases, we implemented a local private registry to enable fast provisioning without the complexities and cost of hosting in the cloud.