啟動(dòng)registry:
docker run -d --restart=always --name registry-2 -v /opt/auth/:/auth/ -v /data/registry/registry:/var/lib/registry -v /data/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_KEY=/certs/westos.org.key -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_STORAGE_DELETE_ENABLED=true -p 443:443 registry
啟動(dòng)web:
docker run -d --restart=always -p 8082:8080 --name registry-web --link registry-2:westos.org -e REGISTRY_URL=https://heimayi.xyz/v2 -e REGISTRY_TRUST_ANY_SSL=true -e REGISTRY_BASIC_AUTH="d2FuZ3lpOndhbmd5aUAxMjM=" -e REGISTRY_NAME=heimayi.xyz hyper/docker-registry-web
registry啟動(dòng)項(xiàng)里配置私鑰
docker run -d \
--restart=always \
--name registry-2 \
-v /opt/auth/:/auth/ \ 密碼目錄(上一章說過)
-v /data/registry/registry:/var/lib/registry \ 鏡像目錄
-v /data/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_KEY=/certs/westos.org.key \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_STORAGE_DELETE_ENABLED=true \
-p 443:443 \
registry
創(chuàng)建certs證書,生成服務(wù)器私鑰
mkdir /data/registry/certs
cd /data/registry 生成密鑰在當(dāng)前目錄 certs
openssl req -newkey rsa:4096 -nodes \
-sha256 -keyout certs/westos.org.key -x509 -days 365 \
-out certs/westos.org.crt
[root@ecs-3 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
Generating a 4096 bit RSA private key
......................++
................................................................................................++
writing new private key to 'certs/westos.org.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:hangzhou
Locality Name (eg, city) [Default City]:hangzhou
Organization Name (eg, company) [Default Company Ltd]:mayi
Organizational Unit Name (eg, section) []:heimayi
Common Name (eg, your name or your server's hostname) []:mayi-3
Email Address []:root@mayi-3
完成后:
[root@ecs-3 registry]# ll certs/
total 8
-rw-r--r-- 1 root root 2086 Nov 10 09:56 westos.org.crt
-rw-r--r-- 1 root root 3272 Nov 10 09:56 westos.org.key
啟動(dòng):
docker run -d \
--restart=always \
--name registry-2 \
-v /opt/auth/:/auth/ \
-v /data/registry/registry:/var/lib/registry \
-v /data/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_KEY=/certs/westos.org.key \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_STORAGE_DELETE_ENABLED=true \
-p 443:443 \
registry
測(cè)試功能
[root@ecs-3 registry]# curl -k -XGET --user mayi:123456 https://127.0.0.1:443/v2/_catalog
{"repositories":[]} (你的用戶和密碼)

成功后會(huì)在/root/.docker/config.json 保存443端口的密碼,啟動(dòng)registry-web會(huì)用到

啟動(dòng)web頁面:
docker run -d -p 8082:8080 --name registry-web \
--link registry-2:westos.org \
-e REGISTRY_URL=https://heimayi.xyz/v2 \
-e REGISTRY_TRUST_ANY_SSL=true \
-e REGISTRY_BASIC_AUTH="passwd" \ #config.json的443的密碼
-e REGISTRY_NAME=heimayi.xyz \
hyper/docker-registry-web
訪問: 127.0.0.1:8082
