The official registry image currently only has Linux images. This repository has Windows variants, tagged as
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 172.24.202.164 -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
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 0.0.0.0:2375 --insecure-registry registry.local:5000 Start-Service docker
Using the Registry
To use the local registry, just
tag images with the registry address 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.
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