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

搭建docker私有化仓库Harbor

Docker私有仓库概述

Docker私有仓库介绍

Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部开发、测试以及生产环境中的容器镜像管理。由于业务敏感性需要,一般在组织内部会创建私有的仓库,内部各个组织单位可以共享,外部访问需要认证授权,因此可以保证数据的安全性。

有哪些私有仓库

以下是一些常见的Docker私有仓库:

  • Harbor:作为一个企业级的Docker Registry服务,Harbor提供了安全、可信赖的镜像存储和管理功能。它支持RBAC权限控制、镜像复制、镜像签名、漏洞扫描等功能。
  • Docker Trusted Registry (DTR):由Docker官方推出的企业级Docker私有仓库服务,与Docker Engine紧密集成,支持高度的安全性和可靠性。
  • Portus:一个开源的Docker镜像管理和认证服务,提供用户管理、团队管理、镜像审核等功能,与Docker Registry兼容。
  • Nexus Repository Manager:虽然主要是用于构建和管理Java组件,但也可以用作Docker私有仓库。它具有强大的存储管理和权限控制功能。
  • GitLab Container Registry:GitLab集成了容器注册表功能,允许您存储、管理和分发Docker镜像。这是GitLab自带的功能,无需额外部署。
  • AWS Elastic Container Registry (ECR):如果使用AWS云服务,可以考虑使用AWS ECR作为私有仓库。它与AWS的其他服务集成紧密,对AWS用户来说是一个方便的选择。
    本篇使用Harbor搭建Docker私有仓库。

Docker Harbor简介

Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全、可信赖的仓库来存储和管理Docker镜像。Harbor翻译为中文名称为"庇护;居住;“。可以理解为是Docker镜像的"居住环境"或者是镜像的"庇护所”。Harbor最初由VMware公司开发,旨在解决企业级Docker镜像管理的安全和可信任性问题。VMware于2016年发布,在2017年,VMware将Harbor开源,这使得更广泛的社区和组织可以自由地使用和贡献代码。Harbor是一个成熟、功能丰富且安全可靠的企业级Docker Registry服务,为企业容器化应用的部署和管理提供了强大的支持。
Harbor官网地址:Harbor (goharbor.io)
Github开源地址:https://github.com/goharbor/harbor

部署并配置Harbor仓库

Harbor下载

这里下载当前最新的版本harbor-offline-installer-v2.12.1.tgz,开源项目地址https://github.com/goharbor/harbor/releases。
提供两种下载方式:

  • 通过wget命令下载
  • 通过github下载地址下载

通过Linux命令wget下载

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

GitHub下载

下载地址:https://github.com/goharbor/harbor/releases 下载离线版本
在这里插入图片描述

下载成功后,把包通过 远程连接工具,如electerm 、xftp 、上传到服务器。

解压

解压文件

[root@localhost soft]# tar -zxvf harbor-offline-installer-v2.12.1.tgz 
harbor/harbor.v2.12.1.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

启动Harbor

修改配置文件

复制harbor.yml.tmpl 文件并重命名为harbor.yml 。修改该文件设置hostname、端口、数据库密码等配置项。

cd harbor && cp harbor.yml.tmpl harbor.yml 

vi harbor.yml修改配置文件:

#修改hostname的值,如果没有域名就使用本机IP地址
hostname: 192.168.42.133
# hostname: hub.hauxc.dev.com#配置启动端口号
# http related config 
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 5000# 如果没有申请证书,需要隐藏https
#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#启动成功后,admin用户登录密码
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor@hau123

启动harbor

配置文件修改成功后,执行 install.sh 脚本进行安装harbor

./install.sh 

启动报错:

[Step 0]: checking if docker is installed ...
Note: docker version: 26.1.3
[Step 1]: checking docker-compose is installed ...
/opt/harbor/common.sh: line 119: docker-compose: command not found
✖ Failed to parse docker-compose version.

可以看到,该服务器安装的 docker 没有安装 docker-compose 插件。

安装docker-compose

进入docker-compose 官网下载执行文件,地址: https://github.com/docker/compose 下载成功后,把可执行文件加入Linux 系统命令目录。

cp docker-compose-linux-x86_64 /usr/local/bin/

重命名:

mv docker-compose-linux-x86_64 docker-compose

添加可执行权限:

chmod +x /usr/local/bin/docker-compose

执行命令查看是否安装成功:

docker-compose --version

如果需要卸载,直接删除即可:

rm -f /usr/bin/docker-compose

再次启动

./install.sh

在这里插入图片描述

提示安装成功。接下来就可以访问Harbor了。访问IP+端口:http://192.168.42.133:5000
在这里插入图片描述

访问成功,由于Harbor是通过docker管理的,所以启动非常方便。如果首页访问成功说明Docker私有仓库已经部署成功了。

Cannot connect to the Docker daemon

如果安装过程报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?,可能是因为docker运行状态异常,可以先检查docker是否启动。

[root@localhost harbor]# ./install.sh [Step 0]: checking if docker is installed ...Note: docker version: 26.1.3[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.27.0[Step 2]: loading Harbor images ...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@localhost harbor]# # 检查docker运行状态[root@localhost harbor]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: https://docs.docker.com
[root@localhost harbor]# # docker未运行,使用命令启动[root@localhost harbor]# systemctl start docker
[root@loc
http://www.lryc.cn/news/519026.html

相关文章:

  • 【Vim Masterclass 笔记09】S06L22:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第一部分)
  • GIC中断分组介绍(IMX6ull为例)
  • 计算机网络期末复习(知识点)
  • Apache XMLBeans 一个强大的 XML 数据处理框架
  • 飞凌嵌入式i.MX8M Mini核心板已支持Linux6.1
  • 【数据链电台】洛克希德·马丁(Lockheed Martin)
  • python关键字(保留字)用法、保留的标识符类(1)
  • Ubuntu平台虚拟机软件学习笔记
  • 【数据库系统概论】数据库恢复技术
  • R 语言科研绘图 --- 折线图-汇总
  • 基于 Python 和 OpenCV 的人脸识别上课考勤管理系统
  • 工业 4G 路由器赋能远程医疗,守护生命线
  • Windows安装Ubuntu子系统图形化工具
  • MiniMind - 从0训练语言模型
  • sql正则表达
  • 基于华为Maas(大模型即服务)和开源的Agent三方框架构建AI聊天助手实践
  • 微信小程序——创建滑动颜色条
  • Qt官方下载地址
  • 网络-ping包分析
  • SEO内容优化:如何通过用户需求赢得搜索引擎青睐?
  • ubuntu22.04 的录屏软件有哪些?
  • Opencv查找、绘制轮廓、圆形矩形轮廓和近似轮廓
  • 深入解析 Python 2 与 Python 3 的差异与演进
  • 后端:Spring(IOC、AOP)
  • 排序:插入、选择、交换、归并排序
  • 认识+安装ElasticSearch
  • 一个模块实现期货分钟 K 线计算、主连行情合成
  • PyTorch:.max(1)和.max(0)的使用
  • ASP.NET Core 中使用 Cookie 身份验证
  • Ollama私有化部署大语言模型LLM