如何通过Docker Registry(2)构建个人私有仓库进行讨论?

更新于
2026-10-09 14:17:36
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2019个文字,预计阅读时间需要9分钟。

如何通过Docker Registry(2)构建个人私有仓库进行讨论?

前言:在上篇博文中,我们讨论了Docker(1)的核心三大要素,其中利用Registry搭建私有仓库是其中之一。本文将主要介绍如何利用Registry搭建私有仓库,并简要了解Harbor。

本文主要介绍利用Registry搭建私有仓库,关于Harbor的知识了解如下:

1. Registry简介:Registry是Docker官方提供的容器镜像仓库服务,用于存储和分发Docker镜像。Registry分为公开和私有两种,公开的如Docker Hub,私有的则用于企业内部或团队内部。

2. 搭建私有Registry: - 安装Registry:可以使用Docker官方提供的Registry镜像进行安装。 - 配置Registry:配置Registry的访问权限、存储位置等。 - 上传镜像:将本地镜像推送到Registry中。 - 拉取镜像:从Registry中拉取镜像。

3. Harbor简介:Harbor是一个开源的Docker镜像仓库管理工具,它提供了用户认证、镜像扫描、访问控制等功能,可以帮助企业更好地管理和分发Docker镜像。

4. Harbor的优势: - 用户认证:支持多种用户认证方式,如LDAP、Active Directory等。 - 镜像扫描:自动扫描镜像,检查是否存在安全漏洞。 - 访问控制:支持基于角色的访问控制,确保只有授权用户才能访问镜像。 - 镜像复制:支持将镜像从一个Registry复制到另一个Registry。

通过以上介绍,相信大家对利用Registry搭建私有仓库以及Harbor有了初步的了解。

前言:在上篇一起讨论dokcer(1)的博客中提到了docker的内部三大核心,而利用registry搭建私有仓库就是三大核心之一。本文主要介绍的是利用registry搭建私有仓库,关于harbo的知识了解即可,关于搭建方法日后有机会再一起讨论介绍。

上篇博客链接:

一起讨论docker(1)之介绍与安装 - LIU-GC - 自由互联 (cnblogs.com)

一、私有仓库介绍:

1、Docker的内部三大核心概念:

1)镜像docker images:docker镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器。

2)仓库docker repository:类似代码仓库,他是docker集中存放镜像文件的地方。

3)容器docker contains:利用容器运行,一个docker容器包含了所有的某个应用运行所需要的环境。

注意:镜像是只读的,容器在启动的时候,创建一层壳写作为最上层。

2、公共仓库vs私有仓库

2.1公共仓库

所有人都可以访问的一个远程docker仓库,该仓库中的所有镜像都是公开的,供下载使用
docker官方维护的公共仓库:
docker hub,国内的一些docker公共仓库:DaoCloud、阿里云

2.2 私有仓库

只有个人或团队内部的docker仓库,只有本地局域网的主机或通过授权的用户可以访问该仓库

3、为什么要搭建私有仓库

1)公共仓库的镜像虽然多,但是没有针对于自己生产环境的镜像,不同生产环境对于镜像有不同需求

2)上传自己生产环境的镜像至公共仓库,任何人都可以下载,没有私密性、安全性,虽然可以在dockerhub上申请私有repository,但是需要付费。

3)docker hub公共仓库毕竟是远程服务器,在下载连接速度会受到很大影响,影响工作效率,需要互联网、性能低。

4、搭建私有仓库的方案

docker官方提供的搭建私有仓库工具registry
harbor私有仓库

5、registry和harbor介绍

5.1 registry搭建私有仓库介绍

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

以下内容了解即可:

5.2 harbor私有仓库

1)Harbor是VMware公司的开源级的企业级Docker Registry(仓库)项目
2)Harbor的目标是帮助用户迅速搭建一个企业级的Docker Registry服务。
3)Harbor以docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access
Control),AD/LDAP集成,以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
4)Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。
5)Docker harbor有可视化的web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能

即通俗理解为:

Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。

Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

注意:Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。 5.3 harbor私有仓库优点:

(1)基于角色控制

(2)基于镜像的复制策略

(3)支持LDAP/AD,通过VPN连接域使用

(4)图像删除和垃圾收集

(5)图像UI

(6)审计

(7)RESTful API

二、利用registry搭建私有仓库

1、环境搭建

两台都装有dokcer-ce的centos7.9虚拟机

ip规划:

主机一(registry)172.17.8.11

主机二 (test)172.17.8.22

2、过程:

安全配置(两台主机都操作)

关闭防火强,selinux设置为宽松模式

systemctl stop firewalld.service && systemctl disable firewalld.service

setenforce 0

主机一:

1)开启路由转发

sysctl -p

如何通过Docker Registry(2)构建个人私有仓库进行讨论?

net.ipv4.ip_forward = 1

2)下载私有仓库镜像

docker pull registry:2

3)重启docker服务

4)创建私有仓库目录

mkdir -p /opt/data/registry

5)运行容器,开启5000端口(端口映射)

docker run -itd -p 5000:5000 --restart always -v /opt/data/registry/:/var/lib/registry --name registry registry:2

补充:

-d:后台运行容器,并返回容器ID;

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p 容器内用什么端口 5000本地端口

Restart always 容器遇到错误是自动重启

Never 不重启 Failure 只有报错才重启

-v 容器目录和物理机的目录相通,目录映射 /opt/data/registry 和容器内 /var/lib/registry (内存放的镜像)是一样的

6)检验容器内/仓库内镜像;

curl 172.17.8.11:5000/v2/_catalog

以下操作两个主机都需

配置私有仓库安全性

修改配置文件(不安全的镜像私有仓库)

vim /usr/lib/systemd/system/docker.service

13行

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 172.20.10.32:5000

注:ip地址为私有仓库镜像所在虚拟机的ip地址

重启服务

systemctl daemon-reload

systemctl restart docker

主机一:下载镜像在主机二做拉取测试

docker pull centos:7

镜像改名

docker tag centos:7 172.17.8.11:5000/centos-7

将本地镜像上传到镜像仓库

docker push 172.17.8.11:5000/centos-7

检验

curl 172.17.8.11:5000/v2/_catalog

主机二:从私有仓库中下载镜像测试

docker pull 172.17.8.11:5000/centos-7

docker images 查看

本文共计2019个文字,预计阅读时间需要9分钟。

如何通过Docker Registry(2)构建个人私有仓库进行讨论?

前言:在上篇博文中,我们讨论了Docker(1)的核心三大要素,其中利用Registry搭建私有仓库是其中之一。本文将主要介绍如何利用Registry搭建私有仓库,并简要了解Harbor。

本文主要介绍利用Registry搭建私有仓库,关于Harbor的知识了解如下:

1. Registry简介:Registry是Docker官方提供的容器镜像仓库服务,用于存储和分发Docker镜像。Registry分为公开和私有两种,公开的如Docker Hub,私有的则用于企业内部或团队内部。

2. 搭建私有Registry: - 安装Registry:可以使用Docker官方提供的Registry镜像进行安装。 - 配置Registry:配置Registry的访问权限、存储位置等。 - 上传镜像:将本地镜像推送到Registry中。 - 拉取镜像:从Registry中拉取镜像。

3. Harbor简介:Harbor是一个开源的Docker镜像仓库管理工具,它提供了用户认证、镜像扫描、访问控制等功能,可以帮助企业更好地管理和分发Docker镜像。

4. Harbor的优势: - 用户认证:支持多种用户认证方式,如LDAP、Active Directory等。 - 镜像扫描:自动扫描镜像,检查是否存在安全漏洞。 - 访问控制:支持基于角色的访问控制,确保只有授权用户才能访问镜像。 - 镜像复制:支持将镜像从一个Registry复制到另一个Registry。

通过以上介绍,相信大家对利用Registry搭建私有仓库以及Harbor有了初步的了解。

前言:在上篇一起讨论dokcer(1)的博客中提到了docker的内部三大核心,而利用registry搭建私有仓库就是三大核心之一。本文主要介绍的是利用registry搭建私有仓库,关于harbo的知识了解即可,关于搭建方法日后有机会再一起讨论介绍。

上篇博客链接:

一起讨论docker(1)之介绍与安装 - LIU-GC - 自由互联 (cnblogs.com)

一、私有仓库介绍:

1、Docker的内部三大核心概念:

1)镜像docker images:docker镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器。

2)仓库docker repository:类似代码仓库,他是docker集中存放镜像文件的地方。

3)容器docker contains:利用容器运行,一个docker容器包含了所有的某个应用运行所需要的环境。

注意:镜像是只读的,容器在启动的时候,创建一层壳写作为最上层。

2、公共仓库vs私有仓库

2.1公共仓库

所有人都可以访问的一个远程docker仓库,该仓库中的所有镜像都是公开的,供下载使用
docker官方维护的公共仓库:
docker hub,国内的一些docker公共仓库:DaoCloud、阿里云

2.2 私有仓库

只有个人或团队内部的docker仓库,只有本地局域网的主机或通过授权的用户可以访问该仓库

3、为什么要搭建私有仓库

1)公共仓库的镜像虽然多,但是没有针对于自己生产环境的镜像,不同生产环境对于镜像有不同需求

2)上传自己生产环境的镜像至公共仓库,任何人都可以下载,没有私密性、安全性,虽然可以在dockerhub上申请私有repository,但是需要付费。

3)docker hub公共仓库毕竟是远程服务器,在下载连接速度会受到很大影响,影响工作效率,需要互联网、性能低。

4、搭建私有仓库的方案

docker官方提供的搭建私有仓库工具registry
harbor私有仓库

5、registry和harbor介绍

5.1 registry搭建私有仓库介绍

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

以下内容了解即可:

5.2 harbor私有仓库

1)Harbor是VMware公司的开源级的企业级Docker Registry(仓库)项目
2)Harbor的目标是帮助用户迅速搭建一个企业级的Docker Registry服务。
3)Harbor以docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access
Control),AD/LDAP集成,以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
4)Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。
5)Docker harbor有可视化的web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能

即通俗理解为:

Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。

Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

注意:Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。 5.3 harbor私有仓库优点:

(1)基于角色控制

(2)基于镜像的复制策略

(3)支持LDAP/AD,通过VPN连接域使用

(4)图像删除和垃圾收集

(5)图像UI

(6)审计

(7)RESTful API

二、利用registry搭建私有仓库

1、环境搭建

两台都装有dokcer-ce的centos7.9虚拟机

ip规划:

主机一(registry)172.17.8.11

主机二 (test)172.17.8.22

2、过程:

安全配置(两台主机都操作)

关闭防火强,selinux设置为宽松模式

systemctl stop firewalld.service && systemctl disable firewalld.service

setenforce 0

主机一:

1)开启路由转发

sysctl -p

如何通过Docker Registry(2)构建个人私有仓库进行讨论?

net.ipv4.ip_forward = 1

2)下载私有仓库镜像

docker pull registry:2

3)重启docker服务

4)创建私有仓库目录

mkdir -p /opt/data/registry

5)运行容器,开启5000端口(端口映射)

docker run -itd -p 5000:5000 --restart always -v /opt/data/registry/:/var/lib/registry --name registry registry:2

补充:

-d:后台运行容器,并返回容器ID;

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p 容器内用什么端口 5000本地端口

Restart always 容器遇到错误是自动重启

Never 不重启 Failure 只有报错才重启

-v 容器目录和物理机的目录相通,目录映射 /opt/data/registry 和容器内 /var/lib/registry (内存放的镜像)是一样的

6)检验容器内/仓库内镜像;

curl 172.17.8.11:5000/v2/_catalog

以下操作两个主机都需

配置私有仓库安全性

修改配置文件(不安全的镜像私有仓库)

vim /usr/lib/systemd/system/docker.service

13行

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 172.20.10.32:5000

注:ip地址为私有仓库镜像所在虚拟机的ip地址

重启服务

systemctl daemon-reload

systemctl restart docker

主机一:下载镜像在主机二做拉取测试

docker pull centos:7

镜像改名

docker tag centos:7 172.17.8.11:5000/centos-7

将本地镜像上传到镜像仓库

docker push 172.17.8.11:5000/centos-7

检验

curl 172.17.8.11:5000/v2/_catalog

主机二:从私有仓库中下载镜像测试

docker pull 172.17.8.11:5000/centos-7

docker images 查看