本文以docker registry为例部署自签名私有镜像仓库:
生成自签名证书
mkdir -p certs
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 36500 -out certs/domain.crt
注意:生成证书时,需填写对应域名(该域名可自由设定)
启动docker registry服务
镜像数据存储到本地/mnt/registry (目录可自定义,如果镜像较多,请确保存储空间足够)
docker run -d \
--restart=always \
--name registry \
-v "$(pwd)"/certs:/certs \
-v /mnt/registry:/var/lib/registry \
-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 \
-p 443:443 \
registry:2
配置registry
注意:需要使用该registry服务的机器,均需做如下操作。
将registry证书域名及对应ip地址配置hosts /etc/hosts
拷贝证书到指定目录,使docker信任该证书(该路径与证书域名有关,请按实际域名创建证书拷贝路径)
mkdir -p /etc/docker/certs.d/dockerhub.kubesphere.local
cp certs/domain.crt /etc/docker/certs.d/dockerhub.kubesphere.local/ca.crt
验证服务可用性