如何搭建属于自己的Docker私有仓库

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可分为顶层仓库用户仓库
    • 用户仓库名称格式为用户名/仓库名
  • 每个仓库可以包含多个tag(标签),每个标签对应一个镜像

index

  • 维护用户账户,镜像的校验以及公共命名空间的信息
  • 相当于为registry提供了一个完成用户认证等功能的检索接口

拉取上床仓库镜像

拉取

dcoker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>


registry:仓库服务器地址,不指定默认是docker hub
port:端口,默认是443,因为是https协议
namespace:名称空间,表示是哪个用户的仓库,如果是顶层仓库,可忽略
name:仓库名
tag:标签名,默认是latest版本

上传

docker push [options] name[:tag]

知名docker仓库

在docker hub商创建自己的docker registry

(1)首先需要在docker hub网站上注册一个账号,记住用户名密码,因为docker login时需要使用
在这里插入图片描述
(2)在docker hub上点击创建一个仓库
在这里插入图片描述
(3)填写仓库名huazi086/busybox和简短的描述
在这里插入图片描述

将镜像上传到自己的registry

[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登录

[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

上传

[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上

[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还具有以下特点:

  1. 安全性:只有经过授权的用户才能访问私有仓库,这有助于保护敏感信息和代码。
  2. 可定制性:私有仓库可以根据组织的需求进行定制,包括仓库名称、布局和内容等。
  3. 稳定性:私有仓库提供稳定的访问和下载速度,确保用户能够快速地获取所需的Docker镜像。
  4. 离线访问:私有仓库可以搭建在本地或内部网络上,这样用户就可以在不依赖外部仓库的情况下进行离线访问和镜像拉取。
  5. 高度可靠:通过备份和恢复机制,私有仓库可以确保存储的镜像不会丢失,提供高可靠性。

搭建私有仓库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

相关推荐

  1. 如何拥有自己私有docker仓库

    2024-03-31 22:14:01       16 阅读
  2. 如何拥有自己私有docker仓库

    2024-03-31 22:14:01       14 阅读
  3. Git篇如何自己服务器自己git私有仓库

    2024-03-31 22:14:01       43 阅读
  4. Docker私有仓库

    2024-03-31 22:14:01       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 22:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 22:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 22:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 22:14:01       18 阅读

热门阅读

  1. 正则表达式

    2024-03-31 22:14:01       17 阅读
  2. Leetcode 232:用栈实现队列

    2024-03-31 22:14:01       17 阅读
  3. leetcode 55.跳跃游戏

    2024-03-31 22:14:01       18 阅读
  4. C#使用Stopwatch类来实现计时功能

    2024-03-31 22:14:01       16 阅读
  5. LEETCODE-DAY38

    2024-03-31 22:14:01       13 阅读
  6. FPGA_mipi

    2024-03-31 22:14:01       14 阅读
  7. 享元模式

    2024-03-31 22:14:01       13 阅读
  8. Rust常用库之处理hex数据hex-literal

    2024-03-31 22:14:01       16 阅读
  9. C++-三目运算符注意点与临时变量的坑

    2024-03-31 22:14:01       16 阅读
  10. Leetcode 209. 长度最小的子数组

    2024-03-31 22:14:01       14 阅读