当前位置: 首页 > article >正文

基于Harbor构建docker私有仓库

Harbor 是一个开源的企业级容器镜像仓库,主要用于存储、签名和扫描容器镜像。Harbor 基于 Docker Registry 构建,并在此基础上增加了许多企业级特性,以满足企业对安全性、可扩展性和易用性的需求。Harbor 的架构由多个组件组成,包括数据访问层、服务层和前端层,这些组件协同工作,提供了高效、安全的容器镜像管理服务。它支持多种存储后端,如文件系统、S3、Ceph 等,以满足不同企业的需求。

环境准备

系统os:openEular或者Rocky

关闭防火墙和selinux,禁用selinux:systemctl stop firewalld && setenforce 0

安装docker

这里使用yum安装,先下载yum仓库。yum-utils是一个yum管理工具,扩展yum仓库的话必须要配置这个

yum install yum-utils -y
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

 下载docker:yum install docker-ce -y

换国内源:

cat >> /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
    	"https://docker.m.daocloud.io",
    	"https://docker.imgdb.de",
    	"https://docker-0.unsee.tech",
    	"https://docker.hlmirror.com",
    	"https://docker.1ms.run",
    	"https://func.ink",
    	"https://lispy.org",
    	"https://docker.xiaogenban1993.com"
    ]
}
EOF

 配置完成,重启docker:

systemctl daemon-reload
systemctl restart docker

 搭建Habor镜像仓库需要使用到:docker-compose这个包,不过好在安装docker-ce是默认会安装的

[root@slave2 ~]# rpm -qa | grep docker-compose
docker-compose-plugin-2.27.0-1.el8.x86_64

 下载harbor离线包,这里可以自己去官网下

wget -c https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz

 解压与配置

tar -xvf harbor-offline-installer-v2.8.4.tgz -C /usr/local/

进入到解压到的目录中

[root@slave2 ~]# cd /usr/local/harbor/
[root@slave2 harbor]# ll
total 597536
-rw-r--r-- 1 root root      3639 Aug 15  2023 common.sh
-rw-r--r-- 1 root root 611834153 Aug 15  2023 harbor.v2.8.4.tar.gz
-rw-r--r-- 1 root root     12499 Aug 15  2023 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2725 Aug 15  2023 install.sh
-rw-r--r-- 1 root root     11347 Aug 15  2023 LICENSE
-rwxr-xr-x 1 root root      1881 Aug 15  2023 prepare

 这里面的harbor.yml.tmpl就是配置模板了,拷贝一份进行配置

需要修改的只有hostname字段和https相关配置

 修改配置之后进行安装:

./install.sh

此时再查看80端口是否被监听:

[root@slave2 harbor]# netstat -lntup | grep 80
tcp        0      0 127.0.0.1:1514          0.0.0.0:*               LISTEN      98053/docker-proxy
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      98596/docker-proxy
tcp6       0      0 :::80                   :::*                    LISTEN      98601/docker-proxy

 此时就可以浏览器访问你的这个IP地址了,用户名/密码:admin/Harbor12345

 配置测试环境

点击“用户管理”——“创建用户”,我这里创建一个test用户

创建一个私有项目,点击项目,然后新建项目

 然后点击我们创建的这个项目,然后点击成员,将我们新增的成员加入进去

然后点击镜像仓库,里面有推送命令,等会儿会用到

 配置客户端

最先配置/etc/hosts文件 

cat >> /etc/hosts << EOF
192.168.118.110    OpenLabTest
EOF

之后,客户端在安装好docker之后,编辑/etc/docker/damon.json这个文件,添加下面这一行(其余的配置国内源同上):

insecure-registries": ["registry.openlab.edu"],

重启docker:systemctl restart docker

然后随便下一个busybox作为测试:docker pull busybox

然后登录仓库:docker login OpenLabTest

然后给镜像打上标签,标签格式规范为:主机名称/项目名称/镜像名称:版本信息

 docker tag busybox:latest OpenLabTest/openlab/busybox:latest

docker push 将镜像上传

 此时,仓库里面就会多出一个私有镜像


http://www.kler.cn/a/580285.html

相关文章:

  • Uniapp实现多种文件类型上传
  • 串口数据记录仪DIY,体积小,全开源
  • 代码随想录刷题day40|(二叉树篇)101.对称二叉树
  • langchain4j+PDFBox小试牛刀
  • flink cdc同步mysql数据
  • deepseek在pycharm中的配置和简单应用
  • 科技的成就(六十七)
  • 深度学习五大模型全解析:CNN、Transformer、BERT、RNN、GAN 的区别与联系,一文读懂!
  • osgEarth 加载MapBox的pbf瓦片数据
  • 控制--机器人模型--四旋翼无人机
  • 深入探索 Dubbo:高效的 Java RPC 框架
  • 化工厂防爆气象站:为石油化工、天然气等领域提供安全保障
  • (每日一题) 力扣 14 最长公共前缀
  • GreatSQL 8.0.32-27 GA (2025-3-10)
  • 几种linux获取系统运行时间的方法
  • java中泛型
  • Mysql主从复制和Mysql高可用以及负载均衡配置
  • 解锁下一代开发范式:IntelliJ Idea AI插件全景实战与未来展望
  • Python数据可视化自动化工具:让数据跃然纸上
  • King3399(ubuntu文件系统)Qt(C++)串口工具开发