私有镜像仓库之Docker Registry

概述

Docker Registry是Docker官方开源的镜像仓库 Distribution;可以从Docker Hub中下载该项目的镜像。

Docker Registry详细信息参考:https://docs.docker.com/registry/

安装配置

基于容器安装

docker run -d -p 5000:5000 \
--restart=always \
--name registry \
-v /data/registry:/var/lib/registry \
registry:2.7

私有仓库需要配置https,否则会报错。可以通过添加insecure-registries配置解决

修改配置需要重启docker;执行命令kill -SIGHUP $(pidof dockerd) 可以优雅的重启docker

在/etc/docker/daemon.json文件中添加如下内容

{
 "insecure-registries":["192.168.56.11:5000"]
}

配置TLS证书

1、自行生成证书

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/myrepo.key -x509 -days 365 -out certs/myrepo.crt

生成过程中会提示输入各种信息,注意Common Name一栏的信息输入访问域名,比如myrepo.com

生成了密钥文件myrepo.key和证书文件myrepo.crt。自建的证书由于服务器不识别;需要在Docker节点上进行配置证书;

注意路径需要和域名一致,如果不是默认端口443,则还需要加上端口

mkdir -p /etc/docker/certs.d/myrepo.com
cp certs/myrepo.crt /etc/docker/certs.d/myrepo.com/ca.crt

2、启用证书启动

docker run -d \
  --name registry \
  -v "/data/registry/data:/var/lib/registry" \
  -v "/data/registry/certs:/certs" \
  -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/myrepo.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/myrepo.key \
  -p 443:443 \
  registry:2.7

REGISTRY_HTTP_ADDR : 修改默认监听端口

REGISTRY_HTTP_TLS_CERTIFICATE : 配置证书地址

REGISTRY_HTTP_TLS_KEY : 配置私钥地址

小结

Docker Registry仅满足了镜像存储和管理的功能,用户权限管理相对较弱(官方没有提供,可以通过其他方案解决)。并且没有管理界面,各种功能配置都需要在配置文件中配置,比较麻烦。

可以通过Harbor搭建企业级的镜像管理系统。Harbor 是一个基于Distribution项目开发的一款企业级镜像管理软件,拥有 RBAC (基于角色的访问控制)、管理用户界面以及审计等非常完善的功能。目前已经从 CNCF 毕业,软件比较成熟。

也可使用第三方的镜像仓库,比如Docker Hub及其他公有云提供的镜像仓库;

基本上常见的公有云都有提供镜像仓库服务,并且提供安全认证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值