注: 以下内容中的 “192.168.1.130” IP 地址请自行修改为你的 Docker 宿主机的地址。
创建 docker-registry 数据存储目录
mkdir -p /data/docker-registry/{auth,certs,lib}
修改 /etc/pki/tls/openssl.cnf 配置 (注: 这一步很重要, 否则后面会提示 x509 错误!)
[ v3_ca ]
subjectAltName = IP:192.168.1.130 # 增加此行内容
生成证书
cd /data/docker-registry/certs \
&& openssl req -newkey rsa:2048 -nodes -keyout registry_auth.key -x509 -days 365 -out registry_auth.crt
update-ca-trust extract
创建管理员 admin 密码
docker run --entrypoint htpasswd registry:2 -Bbn admin r58eYM8wKDvV >> /data/docker-registry/auth/htpasswd
启动容器
docker run -d -p 5000:5000 --restart=always --name docker-registry \
-v /data/docker-registry/lib:/var/lib/registry \
-v /data/docker-registry/auth:/auth \
-v /data/docker-registry/certs:/certs \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry_auth.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry_auth.key \
registry:2
拷贝证书
mkdir -p /etc/docker/certs.d/192.168.1.130\:5000/ \
&& cp -f /data/docker-registry/certs/registry_auth.crt /etc/docker/certs.d/192.168.1.130\:5000/ca.crt
客户端登录
docker login -u admin -p r58eYM8wKDvV 192.168.1.130:5000