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.
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.
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.
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.
Click on the Create New Feed button and select Docker.
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.
Click on the Create New Docker Feed button, and you should be automatically directed to the newly-created registry.
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.
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:
As mentioned previously, Docker needs an SSL connection, so this operation will fail if ProGet is only accessible via http.
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
we need to retag it as follows:
Or, more generally, the format is: server/feed/image:tag.
Once tagged, the image can now be pushed to ProGet:
You can then pull the image in the same fashion: