macOS setup guide
This page contains information about hosting your own registry using the open source Docker Registry. For information about Docker Hub, which offers a hosted registry with additional features such as teams, organizations, web hooks, automated builds, etc, see Docker Hub.
Use-caseπ
This is useful if you intend to run a registry server natively on macOS.
Alternativesπ
You can start a VM on macOS, and deploy your registry normally as a container using Docker inside that VM.
Solutionπ
Using the method described here, you install and compile your own from the git repository and run it as an macOS agent.
Gotchasπ
Production services operation on macOS is out of scope of this document. Be sure you understand well these aspects before considering going to production with this.
Setup golang on your machineπ
If you know, safely skip to the next section.
If you donβt, the TLDR is:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm
gvm install go1.4.2
gvm use go1.4.2
If you want to understand, you should read How to Write Go Code.
Checkout the Docker Distribution source treeπ
mkdir -p $GOPATH/src/github.com/docker
git clone https://github.com/docker/distribution.git $GOPATH/src/github.com/docker/distribution
cd $GOPATH/src/github.com/docker/distribution
Build the binaryπ
GOPATH=$(PWD)/Godeps/_workspace:$GOPATH make binaries
sudo mkdir -p /usr/local/libexec
sudo cp bin/registry /usr/local/libexec/registry
Setupπ
Copy the registry configuration file in place:
mkdir /Users/Shared/Registry
cp docs/osx/config.yml /Users/Shared/Registry/config.yml
Run the Docker Registry under launchdπ
Copy the Docker registry plist into place:
plutil -lint registry/recipes/osx/com.docker.registry.plist
cp registry/recipes/osx/com.docker.registry.plist ~/Library/LaunchAgents/
chmod 644 ~/Library/LaunchAgents/com.docker.registry.plist
Start the Docker registry:
launchctl load ~/Library/LaunchAgents/com.docker.registry.plist
Restart the docker registry serviceπ
launchctl stop com.docker.registry
launchctl start com.docker.registry
Unload the docker registry serviceπ
launchctl unload ~/Library/LaunchAgents/com.docker.registry.plist