如何搭建属于自己的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提供了一个完成用户认证等功能的检索接口

拉取上床仓库镜像

拉取

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

  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

相关推荐
handsomestWei4 分钟前
Nginx整合Lua脚本
运维·nginx·lua
李先静6 分钟前
用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
linux·arm开发·awtk
地球空间-技术小鱼7 分钟前
YUM(Yellowdog Updater, Modified)和DNF(Dandified YUM)简介
linux·运维·服务器·笔记·学习
忆源9 分钟前
Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
linux·网络·tcp/ip
@泽栖25 分钟前
阿里云-将旧服务器数据与配置完全迁移至新服务器
服务器·阿里云
罗狮粉 9935 分钟前
docker部署微信小程序自动构建发布和更新
docker·微信小程序·notepad++
旺仔学IT37 分钟前
CentOS上安装和卸载Docker
docker·centos
ZHOUPUYU38 分钟前
Centos常用命令,按功能分类,用户和权限管理等
linux·运维·centos
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 phpMyAdmin
linux·运维·服务器·mysql·ubuntu·php·phpmyadmin
手心里的白日梦1 小时前
TCP协议
服务器·网络·tcp/ip