The Docker ecosystem consists of the container runtime environment and the tools to define and build application containers. It also includes managing 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 because it is more appropriate for use 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 have licensed and nonlicensed Docker runtimes and must 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 from Docker Hub. The compressed image 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, such as high latency during image downloads. Docker Hub does provide the option for users to upload private images to a public registry. 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.