华子目录
- [Docker registry仓库](#Docker registry仓库)
- 拉取上床仓库镜像
- 知名docker仓库
- [在docker hub商创建自己的docker registry](#在docker hub商创建自己的docker registry)
- 搭建私有仓库Distribution和Harbor
Docker registry仓库
介绍
- registry用于保存docker镜像,包括镜像的层次结构和元数据
- 启动镜像时,docker daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从registry中下载该镜像并保存到本地
- 拉取镜像时,如果不知道registry仓库地址,默认从Docker Hub搜索拉取镜像
分类
- Sponsor Registry:第三方的registry,供客户和docker社区使用
- mirror Registry:第三方的registry,只让客户使用;如docker cn和阿里云的镜像加速器
- vendor Registry:服务商的registry,由发布docker镜像的供应商提供的registry;如红帽提供的专有的,收费提供
- private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry;自建的registry,在本地搭建registry,节省带宽
registry组成(repository和index)
Repository
-
由特定的docker镜像的所有迭代版本组成的镜像仓库
-
一个registry中可以存在多个repository:
- repository可分为
顶层仓库
和用户仓库
- 用户仓库名称格式为
用户名/仓库名
- repository可分为
-
每个仓库可以包含多个tag(标签),每个标签对应一个镜像
index
- 维护用户账户,镜像的校验以及公共命名空间的信息
- 相当于为registry提供了一个完成用户认证等功能的检索接口
拉取上床仓库镜像
拉取
bash
dcoker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
registry:仓库服务器地址,不指定默认是docker hub
port:端口,默认是443,因为是https协议
namespace:名称空间,表示是哪个用户的仓库,如果是顶层仓库,可忽略
name:仓库名
tag:标签名,默认是latest版本
上传
bash
docker push [options] name[:tag]
知名docker仓库
在docker hub商创建自己的docker registry
(1)首先需要在docker hub网站上注册一个账号,记住用户名
和密码
,因为docker login
时需要使用
(2)在docker hub上点击创建一个仓库
(3)填写仓库名huazi086/busybox
和简短的描述
将镜像上传到自己的registry
bash
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 92b11f67642b 6 weeks ago 187MB
mysql latest 019814493c7a 2 months ago 632MB
busybox latest beae173ccac6 2 years ago 1.24MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
[root@server ~]# docker tag busybox huazi086/busybox:v1
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 92b11f67642b 6 weeks ago 187MB
mysql latest 019814493c7a 2 months ago 632MB
huazi086/busybox v1 beae173ccac6 2 years ago 1.24MB
busybox latest beae173ccac6 2 years ago 1.24MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
使用docker login
登录
bash
[root@server ~]# docker login -u huazi086
Password:
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
上传
bash
[root@server ~]# docker push huazi086/busybox:v1
The push refers to repository [docker.io/huazi086/test]
01fd6df81c8e: Pushed
v1: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527
上传成功后,打开docker hub,发现已经上传了v1版本
从registry仓库中拉取镜像
前提是已经使用docker login
登录到自己的docker hub上
bash
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 92b11f67642b 6 weeks ago 187MB
mysql latest 019814493c7a 2 months ago 632MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
[root@server ~]# docker pull huazi086/busybox:v1
v1: Pulling from huazi086/busybox
5cc84ad355aa: Already exists
Digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee
Status: Downloaded newer image for huazi086/busybox:v1
docker.io/huazi086/busybox:v1
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 92b11f67642b 6 weeks ago 187MB
mysql latest 019814493c7a 2 months ago 632MB
huazi086/busybox v1 beae173ccac6 2 years ago 1.24MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
搭建私有仓库Distribution和Harbor
distribution介绍
私有仓库Distribution通常指的是Docker Distribution项目,这是一个开源的项目,用于存储、分发和部署Docker镜像。它是一个灵活和可扩展的平台,适用于创建公共或私有的容器镜像仓库。
私有仓库Distribution允许组织或企业在其内部网络环境中存储和管理Docker镜像,确保只有授权的用户能够访问和使用这些镜像。这种私有仓库的设置提供了更高的安全性和可控性,因为组织可以自定义访问权限、管理镜像版本,并控制哪些镜像可以被分发和部署。
私有仓库Distribution还具有以下特点:
- 安全性:只有经过授权的用户才能访问私有仓库,这有助于保护敏感信息和代码。
- 可定制性:私有仓库可以根据组织的需求进行定制,包括仓库名称、布局和内容等。
- 稳定性:私有仓库提供稳定的访问和下载速度,确保用户能够快速地获取所需的Docker镜像。
- 离线访问:私有仓库可以搭建在本地或内部网络上,这样用户就可以在不依赖外部仓库的情况下进行离线访问和镜像拉取。
- 高度可靠:通过备份和恢复机制,私有仓库可以确保存储的镜像不会丢失,提供高可靠性。
搭建私有仓库Distribution需要一定的技术知识和经验,包括Docker和容器技术的理解,以及网络和安全配置的能力。一旦搭建成功,组织就可以利用其进行高效的镜像管理和分发,提升容器化应用的部署和运维效率。
Harbor介绍
- Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registny为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
- 简单说来,Harbor封装了Docker的registry v2,帮用户提供了许多便挂管理的特性,方便用户操作。
搭建Distribution和Harbor
https://blog.csdn.net/weixin_52951697/article/details/129847236