Skip to content

Instantly share code, notes, and snippets.

@develforever
Last active April 6, 2020 23:55
Show Gist options
  • Save develforever/cd2b9c3e5d725b242e023f96febbbb7f to your computer and use it in GitHub Desktop.
Save develforever/cd2b9c3e5d725b242e023f96febbbb7f to your computer and use it in GitHub Desktop.
Docker registry run helper commands
#!/bin/bash
# create certificate
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout host.key \
-x509 -days 365 -out host.crt
# add certificate global
mkdir -p /usr/share/ca-certificates/local
cp host.crt /usr/share/ca-certificates/local/
nano /etc/ca-certificates.conf
# insert line
local/host.crt
mkdir -p /etc/docker/certs.d/host/
cp host.crt /etc/docker/certs.d/host/ca.crt
service docker restart
# curl and docker done!
# add user htpasswd
mkdir auth
docker run \
--entrypoint htpasswd \
registry:2 -Bbn user pass > auth/htpasswd
# run registry on eg. host:433
docker run -d \
--restart=always \
--name registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /etc/docker/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/host.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/host.key \
-p 443:443 \
registry:2
# login with user:pass
docker login host:433
docker tag app:latest host:433/app
docker push host:433/app
# tadam, done!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment