# Docker私有仓库搭建与使用(二）

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/20700.html | 发布：2023-05-23 | 更新：2023-05-23 | 分类：建站教程

## 2.2 使用官方镜像自建Registry

 

[root@node02 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

 

[root@node02 ~]# ss -antl  
State Recv-Q Send-Q Local Address:Port Peer Address:Port   
LISTEN 0 100 127.0.0.1:25 *:*   
LISTEN 0 128 *:22 *:*   
LISTEN 0 100 [::1]:25 [::]:*   
LISTEN 0 128 [::]:5000 [::]:*   
LISTEN 0 128 [::]:22 [::]:*

 

无论是使用Docker-distribution去自建仓库，还是通过官方镜像跑容器的方式去自建仓库，通过前面的演示我们可以发现其是非常的简陋的，还不如直接使用官方的Docker Hub去管理镜像来得方便，至少官方的Docker Hub能够通过web界面来管理镜像，还能在web界面执行搜索，还能基于Dockerfile利用Webhooks和Automated Builds实现自动构建镜像的功能，用户不需要在本地执行docker build，而是把所有build上下文的文件作为一个仓库推送到github上，让Docker Hub可以从github上去pull这些文件来完成自动构建。

 

但无论官方的Docker Hub有多强大，它毕竟是在国外，所以速度是最大的瓶颈，我们很多时候是不可能去考虑使用官方的仓库的，但是上面说的两种自建仓库方式又十分简陋，不便管理，所以后来就出现了一个被 CNCF 组织青睐的项目，其名为Harbor。

 

3. Harbor

 

Harbor是由VMWare在Docker Registry的基础之上进行了二次封装，加进去了很多额外程序，而且提供了一个非常漂亮的web界面。

 

Project Harbor是一个开源的受信任云本地注册表项目，用于存储、标记和扫描上下文。

 

Harbor通过添加用户通常需要的功能，如安全性、身份标识和管理，扩展了开源Docker发行版。

 

Harbor支持用户管理、访问控制、活动监控和实例之间的复制等高级特性。

 

3.1 Docker compose

 

Harbor在物理机上部署是非常难的，而为了简化Harbor的应用，Harbor官方直接把Harbor做成了在容器中运行的应用，而且这个容器在Harbor中依赖类似redis、mysql、pgsql等很多存储系统，所以它需要编排很多容器协同起来工作，因此VMWare Harbor在部署和使用时，需要借助于Docker的单机编排工具(Docker compose)来实现。

 

Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose，您可以使用一个YAML文件来配置应用程序的服务。然后，使用一个命令，您可以从您的配置中创建并启动所有的服务。

 

3.2 部署Harbor

 

[root@node02 ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo  
[root@node02 ~]# yum -y install docker-compose docker-ce  
[root@node02 ~]# systemctl enable --now docker  
[root@node02 ~]# wget https://github.com/goharbor/harbor/releases/download/v2.0.2/harbor-offline-installer-v2.0.2.tgz  
[root@node02 ~]# ls  
harbor-offline-installer-v2.0.2.tgz  
[root@node02 ~]# tar xf harbor-offline-installer-v2.0.2.tgz -C /usr/local/  
[root@node02 ~]# cd /usr/local/harbor/  
[root@node02 harbor]# ls  
common.sh harbor.yml.tmpl LICENSE  
harbor.v2.0.2.tar.gz install.sh prepare  
[root@node02 harbor]# mv harbor.yml.tmpl harbor.yml  
[root@node02 harbor]# vim harbor.yml  
...  
hostname: 172.16.78.128 //将此行修改为harbor所在的主机名或IP  
...  
//如果没有证书将以下内容全部注释，如果有证书将最后两行更改为证书的路径  
#https:  
 # https port for harbor, default is 443  
# port: 443  
 # The path of cert and key files for nginx  
# certificate: /your/certificate/path  
# private_key: /your/private/key/path  
...

 

[root@node02 harbor]# ./install.sh   
...  
Creating harbor-jobservice ...   
✔ ----Harbor has been installed and started successfully.----

 

[root@node02 harbor]# ss -antl  
State Recv-Q Send-Q Local Address:Port Peer Address:Port   
LISTEN 0 100 127.0.0.1:25 *:*   
LISTEN 0 128 127.0.0.1:1514 *:*   
LISTEN 0 128 *:22 *:*   
LISTEN 0 100 [::1]:25 [::]:*   
LISTEN 0 128 [::]:80 [::]:*   
LISTEN 0 128 [::]:22 [::]:*

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
