如果是生产环境我更加推荐使用harbor去部署一套高可用的镜像仓库,如果是测试环境那我们就可以通过docker自己部署一套了。首先我们需要生成证书,这里填写自己registry的域名或者IP地址。
openssl req -x509 -newkey rsa:4096 -sha256 -days 3560 -nodes -keyout certs/domain.key -out certs/domain.crt -subj '/CN=myregistrydomain.com' -extensions san -config <(
echo '[req]';
echo 'distinguished_name=req';
echo '[san]';
echo 'subjectAltName=IP: 127.0.0.1')
我们这里为了测试,生成完的证书解析如下:
下面就可以通过docker启动镜像仓库仓库服务,挂载生成的证书。
docker run -d --restart=always
--name registry
-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
-p 443:443
registry:2
启动完成后,当我们开始push镜像的时候会提示
Get https://127.0.0.1/v2/: x509: certificate signed by unknown authority
这是因为这个证书是自签的,无法完成证书的验证,需要将私有的证书添加到Docker 证书配置里面,我们将证书拷贝到docker对应的证书路径下面(目录如果不存在就自己创建)。
cp domain.crt /etc/docker/certs.d/127.0.0.1
请将上面的127.0.0.1 换成对应仓库的IP地址或者域名,重新启动docker 后就可以成功push镜像了。
页面更新:2024-03-12
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号