Back to Top

Getting Started with ProGet Private Docker Registries

Starting with ProGet 4.3, you can now add Docker feeds, which are each effectively a private Docker registry. In this tutorial, we will walk through all of the steps needed to start using a private Docker registry.

Step One: Install ProGet

If you don't already have ProGet installed, you can download it here for free. The installation process is quick & easy. For more details, visit the installation page or see the installation guide for step-by-step installation instructions.

Note that Docker requires an SSL connection, so you will need to configure ProGet to use IIS rather than its integrated web server, and configure the web site to use SSL (https). Doing this is beyond the scope of this tutorial, see testing an insecure registry in the Docker documentation for some help on configuring Docker to use a self-signed certificate.

Step Two: Set up ProGet

Navigate to ProGet using your browser. You should then see a system dashboard page. Click on the gear icon in the top-right of the page, and you will be prompted to log in. The log-in page will tell you the default credentials which were created on installation; just log in using those.

ProGet Login

Click on the Feeds tab in the navigation bar, and you will see a list of feeds in the system. A feed is simply an exposed package repository. This name comes from ProGet's origins as a NuGet package server, and in fact, for historical reasons, there is still a NuGet feed called Default created upon installation.

If you are not planning to use NuGet or want to create your own feed for it later, feel free to delete the Default feed.

Manage Feeds

Click on the Create New Feed button and select Docker.

Create Feed

Supply a value for the Feed name field. This will be the name of your private Docker registry, and should contain characters that can be easily typed in a URL. For this tutorial, we'll use DMC.

Feed Properties

Click on the Create New Docker Feed button, and you should be automatically directed to the newly-created registry.

Browse Feed

Using the ProGet web UI, you can browse, and manage your repositories. Explore the UI if you like; when you're ready, fire up a shell on your workstation and we'll get Docker set up for ProGet.

Step Three: Set up Docker

First, you will need to log in to Docker. To do this, use the following command, where proget is the name of your ProGet server:

[~]$ sudo docker login proget

As mentioned previously, Docker needs an SSL connection, so this operation will fail if ProGet is only accessible via http.

Step Four: Publish an Image

To publish a Docker image to ProGet, you first need to tag the image using Docker in a special format. For example, if we have an image locally called ubuntu:trusty, we need to retag it as follows:

[~]$ sudo docker tag ubuntu:trusty proget:443/dmc/ubuntu:trusty

Or, more generally, the format is: server/feed/image:tag.

Once tagged, the image can now be pushed to ProGet:

[~]$ sudo docker push proget:443/dmc/ubuntu:trusty

You can then pull the image in the same fashion:

[~]$ sudo docker pull proget:443/dmc/ubuntu:trusty