$ mkdir auth
$ docker run \
--entrypoint htpasswd \
httpd:2 -Bbn testuser 123456 > auth/htpasswd
docker run --rm --entrypoint htpasswd httpd:2 -Bbn testuser 123456 | Set-Content -Encoding ASCII auth/htpasswd
$ docker run -d \
-p 443:443 \
--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 "$(pwd)"/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
FROM registry:2
LABEL MAINTAINCE="bohanz838@gmail.com"
ADD certs /certs
ADD auth /auth
services:
registry:
restart: always
build:
context: .
tags:
- "registry:v1"
ports:
- 443:443
environment:
REGISTRY_HTTP_ADDR: 0.0.0.0:443
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
sudo su -
echo "192.168.10.110 example.com" >> /etc/hosts
docker tag ubuntu:20.04 example.com/ubuntu:v1
docker push example.com/ubuntu:v1
docker rmi ubuntu:20.04 example.com/ubuntu:v1
docker pull example.com/ubuntu:v1
docker images example.com/ubuntu