Public Repository

Last pushed: 6 months ago
Short Description
Docker Registry 2.6.0 running on Windows - Nano Server or Windows Server Core
Full Description


The official registry image currently only has Linux images. This repository has Windows variants, tagged as :nanoserver or :windowssservercore.


PR 2209 adds cross compiling to docker/distribution, so you can build the Windows binary.

PR 42 adds the Windows Dockerfiles to the official library.

Running a Registry Container

The basic usage will run a registry, store the data in the container, and publish port 5000:

docker run -d -p 5000:5000 sixeyed/registry

You'll want to host-mount the c:\data directory, where the image is configured to store registry data. If you're using the registry from a single host, you can also use a fixed IP address for the container:

mkdir c:\registry-data
docker run -d -p 5000:5000 --ip -v c:\registry-data:c:\data sixeyed/registry

Configuring Your Docker Engine

The registry runs untrusted over HTTP, which Docker doesn't allow by default. Ideally, add a line to your hosts file, to point registry.local to the IP address for your container, to give you flexibility.

Docker for Windows has a UI to add untrusted registries, so you can dd registry.local:5000.

Docker on Windows Server 2016 will need configuring. You can edit daemon.json or add a startup option to allow the untrusted registry address. That means stopping and unregistering the service, and then registering it with new options:

Stop-Service docker
cd 'C:\Program Files\docker\'
dockerd --unregister-service
dockerd --register-service  -G docker -H npipe:// -H --insecure-registry registry.local:5000
Start-Service docker

Using the Registry

To use the local registry, just build or tag images with the registry address and push and pull as usual:

docker pull sixeyed/hello-world:nanoserver
docker tag sixeyed/hello-world:nanoserver registry.local:5000/my/hello-world
docker push registry.local:5000/my/hello-world

Note. The base Windows images microsoft/nanoserver and microsoft/windowsservercore are considered 'foreign' layers by Docker, so you can't re-tag the base images and add them to your registry, only the custom layers for your images will be saved.

Docker Pull Command

Comments (1)
7 months ago

After following the steps to allow the untrusted registry address I'm getting the error below, any ideas?

Start-Service : Failed to start service 'Docker Engine (docker)'.
At line:1 char:1

  • Start-Service docker
  • ~~~~
    • CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
    • FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand