Docker Registry镜像仓库
镜像仓库的使用场景
常见的公有镜像仓库
- Docker官方的镜像仓库:hub.docker.com
- 阿里云镜像仓库: cr.console.aliyun.com
- Google镜像仓库: console.cloud.google.com/gcr/images/…
- 红帽镜像仓库:quay.io/search
商业镜像仓库
- AWS: aws.amazon.com/cn/ecr/#
- 阿里云: cr.console.aliyun.com
- Google镜像仓库: console.cloud.google.com/gcr/images/…
常见的私有自建镜像仓库
- Docker Registry:github.com/distributio…
- harbor:
和harbor镜像仓库简介、高可用机制、部署自签名的harbor镜像仓 库并实现镜像统一分发
harbor简介
- Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,
- 在Docker Registry的基础至上添加了一些企业必需的功能特性, 例如安全认证、镜像扫描和镜像管理、远程镜像复制等,
- 扩展了开源的Docker Distribution的功能,作为一个企业级的私有Registry服务器,Harbor提供了 更好的性能和安全,提升了用户使用Registry分发镜像镜像的效率,
- Harbor支持安装在多个Registry节点以实现镜像资源夸主机复制、从而实现镜像服务的 高可用和镜像数据的安全,
- 另外将镜像全部保存在私有网络的Registry中,也可以确保代码数据和密码配置等信息仅在公司内部网络中传输,从而保证核心 数据的安全性
- harbor官方网址: goharbor.io/
- harbor官方github地址: github.com/vmware/harb…
- vmware官方开源服务列表地址: vmware.github.io/harbor/cn
harbor的优势
- 基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行项目管理,可以对不同的账户设置不同的权限,以实现权限的精细管控。
- 镜像复制:镜像可以在多个Registry实例中复制(同步),可以实现高性能、高可用的镜像服务。
- 图形化用户界面:用户可以通过浏览器来浏览,管理当前Docker镜像仓库,管理项目和镜像等。
- AD/LDAP 支:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
- 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
- 国际化:已拥有英文、中文、德文、日文和俄文等多语言支持版本。
- RESTful API:提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
- 部署简单:提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
harbor组件简介
- Core Service:基于nginx实现的harbor反向代理组件,用于接 受客户端请求,代理会转发harbor web和docker client的各种请 求到后端服务上。
- Admin Service: harbor系统管理接口,可以修改系统配置以 及获取系统信息。
- Job Service: harbor里面主要是为了镜像仓库之前同步使用的。
- SQL Database:存储项目的元数据、用户、规则、复制策略等信息。
- Image Registry:存储docker images的服务,提供镜像读写 请求服务。
- Redis:存储缓存信息。
- vulnerability scanning: 镜像漏洞扫描服务(基于红帽的clair实现)。
- trusted content:可信服务,用于验证镜像的数字签名信息, 保证镜像的一致性(依赖于ssl实现)。
harbor 部署-http
http镜像仓库:
## 1、安装docker:
root@docker-harbor1:~# cd /usr/local/src/
root@docker-harbor1:/usr/local/src# tar xvf docker-20.10.18-binary-install.tar.gz
root@docker-harbor1:/usr/local/src# bash docker-install.sh
## 2.安装harbor:
root@docker-harbor1:~# mkdir /apps
root@docker-harbor1:~# cd /apps/
root@docker-harbor1:/apps# tar xvf harbor-offline-installer- v2.6.1.tgz
root@docker-harbor1:/apps# cd harbor/
root@docker-harbor1:/apps# cp harbor.yml.tmpl harbor.yml
root@docker-harbor1:/apps/harbor# vim harbor.yml
hostname: harbor.magedu.net
http:
port: 80
harbor_admin_password: 12345678
docker使用http harbor
docker主机登录
1.配置主机名解析
root@docker-server1:~# vim /etc/hosts
172.31.6.204 harbor.magedu.net
2.docker 服务器配置仓库信任:
root@docker-server1:~# vim /etc/docker/daemon.json
"insecure-registries": ["harbor.magedu.com","harbor.magedu.net","harbor.myserver.com","172.31.7.105"],
root@docker-server1:~# systemctl restart docker
root@docker-server1:~# docker login harbor.magedu.net
Username: admin
Password: xxxxxxxx #输入在自己的密码
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
3.上传镜像:
root@docker-server1:~# docker tag alpine:3.16.2 harbor.magedu.net/myserver/alpine:3.16.2
root@docker-server1:~# docker push harbor.magedu.net/myserver/alpine:3.16.2
4.验证镜像下载:
配置域名解析及仓库信任
root@docker-server1:~# docker pull harbor.magedu.net/myserver/alpine:3.16.2
阿里云镜像仓库的使用
- 注册账户 cr.console.aliyun.com/
- 创建镜像仓库
- 构建镜像
- 指定镜像tag
- 登录镜像仓库
- 上传镜像
- 下载镜像
- 实现镜像分发
[root@hybrid01 ~]# docker login --username=xxx registry.cn-wulanchabu.aliyuncs.com
[root@hybrid01 ~]# docker tag 2e200967d166 registry.cn-wulanchabu.aliyuncs.com/sensorsdeploy/scout:jfrog-internal_v1
[root@hybrid01 ~]# docker push registry.cn-wulanchabu.aliyuncs.com/sensorsdeploy/scout:jfrog-internal_v1
The push refers to repository [registry.cn-wulanchabu.aliyuncs.com/sensorsdeploy/scout]
8bb4e6af097f: Pushed
9340e9d17d33: Pushed
9a5e562a5036: Pushed
09e3373b9d9a: Pushed
4fc242d58285: Pushed
jfrog-internal_v1: digest: sha256:6060f78eda124040cfeb19d2fcc9af417f5ee23dc05d0894fcfe21f24c9cbf9a size: 1363
常见的用法
公有云买机器 装harber 使用公有云的镜像仓库
- 需要考虑业务所在的区域