ProGet Documentation

Containers

ProGet 5.0 Beta Documentation Note:

Docker Container Registries are splitting from Feeds; Although Docker Registries will still be internally represented as feeds, they will be presented in the new UI as an entirely separate concept, similar to Asset Directories. This is currently in beta, and the documentation is subject to change at any time.

Docker Registry Limitations

Docker registries are fundamentally different from other ProGet feed types. Docker registries do not have any concept of packages. Instead, Docker works with repositories and images. A Docker registry contains multiple repositories, and each repository can contain one or more images. Images themselves are identified either by a hash, or a more friendly tag.

Docker registries also are not intended for use with anything except the Docker client. Images cannot be manually created or uploaded, although they can be deleted, and some metadata can be edited from within ProGet.

Connectors cannot be used with Docker registries. Since the Docker client uses the server name itself as its mechanism for identifiying when to use a private registry, there is no meaningful way to allow the transparent use of connectors as in other ProGet feed types.

To learn more about Docker registries, please visit this Knowledge Base article.

Adding a Docker Registry

Legacy - Adding a Docker Feed

Starting with ProGet 4.3, you can now add Docker feeds, which are each effectively a private Docker registry.

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). See testing an insecure registry in the Docker documentation for some help on configuring Docker to use a self-signed certificate.

Click on the Feeds tab in the navigation bar, and you will see a list of feeds in the system.

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 example, you could use DMC.

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

Setting 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.

Publishing 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