Improve Network Performance – Store Docker Images Locally with Artifactory

Goodbye network worries – hello remote Docker registries

Docker Hub is an invaluable resource that you need on a regular basis, but as a remote resource, what do you do if Docker Hub goes down or if there is an issue with the network?

JFrog Artifactory is an intermediary between developers and Docker Hub and fully implements the Docker Registry API specification. This allows Artifactory to proxy any public or private Docker repository such as Bintray, Docker Hub or other private Docker registries, and treat them like any other remote repository. When an image is first downloaded, Artifactory stores it in a local cache. Upon receiving subsequent requests for the image, Artifactory performs a smart checksum search for it, and if it has already been downloaded, then the locally cached copy is provided. Therefore, each image is only downloaded once and is then locally available to all other developers in the organization. This reduces network traffic and effectively screens you from any issues with the network, Docker Hub or any other remote Docker resource providing you with consistent and reliable access to remote Docker images.

If we look at access to remote Docker registries from the point of view of a build server, the benefits are clear. A typical project may need tens, if not hundreds of images from Docker Hub or another remote Docker resource. For the server to build these projects, all the images must be downloaded and made available to the server environment. This may require tens of megabytes or more to be downloaded, which may clog your network taking a significant amount of time and causing delays in the build process. By caching the images locally, the build process incurs much less networking, and is therefore, much quicker.