Skip to content

squaremonks/docker-registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Private Docker Registry

How to setup your own private docker registry for your docker images with Digitalocean droplets. This setup can be done on any linux servers.

Installation

Digitalocean

For this project we use a server from Digitalocean droplets. Create a droplet with a Docker image from the Marketplace. Add your ssh key to this droplet to enter console easily.

Server configuration

Allow traffic via port 443 to your server by adding the firewall rule.

$ ufw allow '443/tcp'

Install the two packages for creating the ssl certifcates/keys for your domain and the password.

$ apt-get update && apt-get install certbot apache2-utils

Create the following directories where the certificates and password will be saved.

$ mkdir certs auth

Create your ssl domain certificate.

$ certbot certonly --standalone --email name@domain.ext -d name.domain.ext

Replace the name@domain.ext to your email address and the name.domain.ext to your server.

After creating the ssl domain certificates, we have to copy the files to make it actually work. Copy the private key.

$ cp /etc/letsencrypt/live/name.domain.ext/privkey.pem ./certs/domain.key 

Copy the content of the cert.pem and chain.pem files into one file.

$ cat /etc/letsencrypt/live/name.domain.ext/cert.pem /etc/letsencrypt/live/name.domain.ext/chain.pem > ./certs/domain.crt

Create your ssl domain password.

$ htpasswd -Bc auth/registry.password username

Choose your own username and fill in your password.

Copy the docker-compose.yml file as in this repository.

REGISTRY_HTTP_SECRET: ''

Fill in your http secret. This can be a random hex.

Run the docker-compose.yml file with detached so it can be runned on the background.

$ docker-compose up -d

Credits and acknowledgements

Also see the list of contributors who participated in this project.

License

The docker-registry is licensed under the MIT License. Please see the LICENSE file for details.