openssl req \
 -newkey rsa:4096 -nodes -sha256 -keyout certs/earnhardt-docker.duckdns.org.key \
 -addext "subjectAltName = DNS:earnhardt-docker.duckdns.org" \
 -x509 -days 365 -out certs/earnhardt-docker.duckdns.org.crt

docker run --entrypoint htpasswd httpd:2 -Bbn docker ****** > auth/htpasswd
version: '3.9'

services:
  registry:
    container_name: registry
    image: registry:2
    restart: always
    ports:
      - "5000:5000"
    environment:
      - "REGISTRY_HTTP_TLS_CERTIFICATE:/certs/earnhardt-docker.duckdns.org.crt"
      - "REGISTRY_HTTP_TLS_KEY:/certs/earnhardt-docker.duckdns.org.key"
      - "REGISTRY_AUTH:htpasswd"
      - "REGISTRY_AUTH_HTPASSWD_REALM:Registry"
      - "REGISTRY_AUTH_HTPASSWD_PATH:/auth/htpasswd"
      - "REGISTRY_STORAGE_DELETE_ENABLED=true"
    volumes:
      - "./data:/var/lib/registry"
      - "./certs:/certs"
      - "./auth:/auth"
    deploy:
      resources:
        limits:
          memory: 2048M
docker-compose -d up

sudo cp certs/domain.crt \ 
  /etc/docker/certs.d/earnhardt-docker.duckdns.org:5000/ca.crt
sudo cp certs/domain.crt \
  /usr/local/share/ca-certificates/earnhardt-docker.duckdns.org.crt
sudo update-ca-certificates

Leave a Reply