此处都是干货,请各自理解其中命令。
# 先生成密钥,registry.crt为证书,registry.key为私钥
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /root/certs/registry.key -x509 -days 356 -out /root/certs/registry.crt
# 此处CommonName必须填写为最后要访问域名,如果是registry.edvance-yun.com,那么就此名字。
# 在客户端加入此证书,注意此处docker daemon进程认可的证书必须为<hostname>:<port>目录
mkdir -p /etc/docker/certs.d/registry.edvance-yun.com:5000
cp /root/certs/registry.crt /etc/docker/certs.d/registry.edvance-yun.com:5000/ca.crt
systemctl restart docker
# 启动Registry
docker run --rm -d -p 5000:5000 \
-v /root/certs:/certs \
-v /data/docker/registry/:/var/lib/registry/ \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
--name registry \
registry:2
# 启动frontend UI
docker run --rm -d \
-e ENV_DOCKER_REGISTRY_HOST=edr.edvance-yun.com \
-e ENV_DOCKER_REGISTRY_PORT=5000 \
-e ENV_DOCKER_REGISTRY_USE_SSL=1 \
-p 0.0.0.0:80:80 \
--name frontend \
konradkleine/docker-registry-frontend:v2
注意:好像证书签发地址不可以为IP地址,我试了很久都不成功,最后还是改回域名。
接下去的问题就是:如何对镜像进行扫描了?www.aquasec.com