手把手教你搭建Docker私有仓库Harbor
1、什么是Docker私有仓库
Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部开发、测试和生产环境中的容器镜像管理。保证数据安全性。
2、Docker有哪些私有仓库
以下是一些常见的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私有仓库。
3、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
4、Harbor下载
4.1、通过Linux命令下载
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
4.2、GitHub下载
下载地址:https://github.com/goharbor/harbor/releases 下载离线版本
下载成功后,把包通过 xftp
上传到服务器。
4.3、解压
解压文件
tar -zxvf harbor-offline-installer-v2.10.0.tgz
5、启动Harbor
5.1、修改配置文件
复制harbor.yml.tmpl
文件并重命名为harbor.yml
修改此配置文件,需要设置hostname、端口、数据库密码等。
cp harbor.yml.tmpl harbor.yml #拷贝
vim harbor.yml
修改配置文件:
#修改hostname的值,如果没有域名就使用本机IP地址
hostname: 192.168.42.133
#配置启动端口号
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 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: AdminHarbor12345
5.2、启动
配置文件修改成功后,执行 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
插件
5.3、安装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
5.4、再次启动
再次执行 ./install.sh
提示安装成功。接下来就可以访问Harbor了。访问IP+端口:http://192.168.42.133:5000
访问成功,由于Harbor是通过docker管理的,所以启动非常方便。如果首页访问成功说明Docker私有仓库已经部署成功了。
6、Harbor Web页面操作说明
默认用户名是admin,密码是启动时设置的密码:AdminHarbor12345
登录成功进入主页面了。从系统首页可以看到系统分为三个菜单:项目、日志、系统管理。
6.1、项目
项目管理顾名思义就是用来管理项目的。可以为每一个开发项目创建一个私有项目库,然后把Docker镜像存储到指定的项目中,为每个项目实现项目镜像隔离。创建项目的时候,Harbor提供了公开库(public repository)和私有库(private repository)两种类型的镜像存储空间。
通过详情信息可以看到:公开库中的镜像是对所有用户可见和可访问的,任何人都可以查看和拉取其中的镜像。而私有库中的镜像则需要登录才能访问控制,只有被授权的用户或团队才能够查看、拉取和推送镜像。 可以根据需要创建相关的项目。
项目创建成功后,可以点击进入项目。在里面可以为每个项目单独设置不同的配置信息。可以为每一个项目添加成员信息。
角色权限说明:
- 项目管理员(Project Administrator):拥有项目的最高权限,可以对项目进行全面管理,包括创建和删除项目、管理项目成员和权限、配置项目属性、查看项目日志等。
- 维护人员(Maintainer):类似于项目管理员,但权限稍低,通常用于协助管理项目,可以进行项目的部分管理操作,如添加和删除镜像、配置镜像的复制和同步规则等。
- 开发者(Developer):具有对项目中镜像仓库的读写权限,可以拉取、推送和删除镜像,以及管理部分项目配置,但不能进行项目管理操作。
- 访客(Guest):只具有对项目中镜像仓库的只读权限,可以查看镜像和元数据,但无法对镜像进行修改或删除操作。通常用于分享项目或镜像给外部团队或用户。
- 受限访客(Restricted Guest):是一种更加受限的访客角色,通常用于提供给外部用户或系统,具有对项目中镜像仓库的只读权限,但可能会限制访问的部分内容或功能。
在右上角显示推送命令,可以通过提示命令进行docker镜像推送。
6.2、日志
日志菜单就是记录用户操作日志信息的。
6.3、系统管理
系统管理主要用来管理Harbor用户人员信息、镜像仓库的各种配置、权限和系统设置。
7、Docker命令使用私有仓库
7.1、登录
首先登录私有仓库地址:
docker login -u admin -p AdminHarbor12345 http://192.168.42.133:5000
会报错:
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.42.133:5000/v2/": proxyconnect tcp: dial tcp 192.168.65.7:3128: connect: connection refused
docker认为这个地址是不安全的,所以需要在docker守护进程配置文件中把该地址加入安全范围。
{
"registry-mirrors": ["https://ejes884z.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"1g", "max-file":"3"},
"live-restore": true,
"insecure-registries": ["192.168.42.133:5000"]
}
# insecure-registries 不安全的注册表配置一些不安全的地址信息,让Docker认为是安全的。多个地址使用 "," 分割
加入配置成功后,再次登录。
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
通过输出发现登录成功。认证信息存储在 ~/.docker/config.json
文件中,只要登录信息存在,登录会一直生效不需要每次推送拉取之前都登录。
7.2、推送
重新命名镜像名称
docker tag 94543a6c1aef 192.168.42.133:5000/blog_project/nginx:1.26.0
推送
docker push 192.168.42.133:5000/blog_project/nginx:1.26.0
查看Harbor仓库,推送成功。
7.3、拉取
通过另一台服务器,使用 docker pull
拉取镜像从私有仓库拉取镜像:
docker pull 192.168.42.133:5000/blog_project/nginx:1.26.0
拉取成功
查看下载数,发现已经更新了。
8、总结
关于使用Harbor搭建Docker私有仓库就介绍完毕了,如果大家有兴趣可以查看一下其他搭建方式,然后在它们之间进行对比一下看看那种方式更适合。本篇为入门级Harbor的基础使用,其他功能可以自行研究。
手把手教你搭建Docker私有仓库Harbor的更多相关文章
- 手把手教你搭建Docker私有仓库
章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就比较简单了.先准备两台虚拟机,两台机器上都 ...
- Kubernetes-5:搭建企业级私有仓库Harbor
搭建企业级私有仓库Harbor 安装需求 python版本 >= 2.7 Docker引擎版本 >= 1.10 docker-compose版本 >= 1.6.0 安装环境 一.Py ...
- 一步步搭建docker私有仓库并从私有仓库中下载镜像
一步步搭建docker私有仓库 #下载镜像 docker pull registry#查看镜像 docker images #运行私有仓库,指定端口和数据卷 docker run -d -p : -v ...
- 搭建docker私有仓库
保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...
- windows 环境下搭建docker私有仓库
windows 环境下搭建docker私有仓库 1.在公用仓库中pull仓库镜像 docker pull regitry 2.启动仓库镜像 //-d意思是后台运行,-p是做端口映射,这里是将本地的50 ...
- docker 私有仓库 harbor docker-compose
c创建docker私有仓库 docker pull registry:2.1.1 mkdir /opt/registry#mkdir /var/lib/registry docker run -d - ...
- Docker自学纪实(六)搭建docker私有仓库
docker的镜像仓库分两种:一种是从官方公有仓库拉取:还有就是自己搭建私有仓库.官方的镜像仓库是面对整个应用市场的:私有仓库一般用于公司内部,就是公司项目自身所需的镜像.搭建私有仓库有什么好处?私有 ...
- 03搭建docker私有仓库
搭建docker私仓,可以使用docker官方提供的registry镜像.该镜像目前有2.0,2.3和2.3.1版本.它只与1.6.0以上版本的docker兼容.搭建私仓的步骤如下: 一:无代理.无认 ...
- CentOS7搭建Docker私有仓库----Docker
有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似.目前Docker Registry已经升级到了v2 ...
- 搭建docker私有仓库,建立k8s集群
服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...
随机推荐
- 实时数仓Hologres首次走进阿里淘特双11
简介:这是淘特在阿里巴巴参与的第二个双11大促,大促期间累计超过上千万消费者在此买到心仪的商品,数百万家商家因为淘特而变得不同,未来,淘特也将会继续更好的服务于下沉市场,让惠民走近千万家. 2021 ...
- Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
简介: 在云原生时代,充分利用边缘节点的计算和存储能力,结合冷热数据分离实现高性价比的数据价值探索已经逐渐成为 APM 领域的主流. 作者:夏明(涯海) 调用链记录了完整的请求状态及流转信息,是一座巨 ...
- Pull or Push?监控系统如何选型
简介: 对于建设一套公司内部使用的监控系统平台,相对来说可选的方案还是非常多的,无论是用开源方案自建还是使用商业的SaaS化产品,都有比较多的可选项.但无论是开源方案还是商业的SaaS产品,真正实施 ...
- LlamaIndex 安装与配置(不含OpenAI)
pip install llama-index 这是一个包含以下组件的启动包: llama-index-core llama-index-legacy (暂时包含) llama-index-llms- ...
- 修改python别名
修改Python别名 发现课程提供的启动python程序的命令均为python3,而我们的环境中只能用python来启动 Python 解释器,可以通过修改python的别名来实现不同名称调用同一个程 ...
- Region-区域
定义Region的方式有两种: 一种是在XAML定义 RegionManager.RegionName(XAML) 一.View代码 1 <Viewbox Grid.Column="1 ...
- Nats集群部署
环境: 3台机器采用同样的目录名字和文件名称 服务器 192.168.10.30 192.168.10.31 192.168.10.32 nats版本2.9.15 配置文件 # 192.168.10. ...
- html+jq实现全国省的单选,弹框输入input
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- Sermant在异地多活场景下的实践
本文分享自华为云社区<Sermant在异地多活场景下的实践>,作者:华为云开源. Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决 ...
- docker 安装 kafka+zookeeper,golang操作kafka
目录 docker-compose.yml go操作kafka producer 消费者 consumer 消费者 结合gin框架操作kafka go-queue操作kafka 环境: centos8 ...