Docker 搭建 Harbor 镜像仓库
参考文章
https://blog.csdn.net/HackerZhou/article/details/144881081
https://blog.csdn.net/liu_xueyin/article/details/135878257
下载 Harbor 资源
首先,我们需要从 Harbor 的 GitHub 发布页面下载其最新版本的资源包。可以通过 wget 或者直接访问github页面下载所需的版本。
wget https://github.com/goharbor/harbor/releases/download/v2.12.4/harbor-offline-installer-v2.12.4.tgz
Github下载
https://github.com/goharbor/harbor/releases
下载成功后,把包通过 xftp 上传到服务器。
解压 Harbor
下载完成后,我们需要解压 Harbor 安装包, 修改harbor.yml
tar -zxvf harbor-offline-installer-v2.12.4.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
这会将 Harbor 安装包解压到当前目录,并进入解压后的 harbor 文件夹。
修改配置文件
打开 harbor.yml 配置文件,并根据需要进行修改,最重要的是修改 hostname 字段来指定 Harbor 的主机名或 IP 地址。例如:
vim harbor.yml
#修改hostname的值,如果没有域名就使用本机IP地址
hostname: 192.168.10.100#配置启动端口号
# http related config
http:port: 5000# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor12345
- hostname:设置为你的 Harbor 服务器的 IP 地址或域名。
- http:如果使用 HTTP 访问 Harbor,则指定端口号(默认为 80)。
- harbor_admin_password:启动成功后,
admin
用户登录密码
我们还需要去掉https的配置
启动 Harbor
配置文件修改成功后,执行 install.sh 脚本进行安装harbor。
cd /home/harbor/
./install.sh
进入 Harbor
在浏览器中访问http://192.168.10.100:5000
你将看到 Harbor 的登录页面,输入刚才设置的用户名和密码:
用户名:admin
密码:Harbor12345
登录后,可以进入 Harbor 的管理界面。
项目
项目管理顾名思义就是用来管理项目的。可以为每一个开发项目创建一个私有项目库,然后把Docker镜像存储到指定的项目中,为每个项目实现项目镜像隔离。创建项目的时候,Harbor提供了公开库(public repository)和私有库(private repository)两种类型的镜像存储空间。
- 公开库中的镜像是对所有用户可见和可访问的,任何人都可以查看和拉取其中的镜像。
- 私有库中的镜像则需要登录才能访问控制,只有被授权的用户或团队才能够查看、拉取和推送镜像。
用户
用于管理登录的用户,例如创建一个专门用于开发的用户
角色
项目创建成功后,可以点击进入项目。我们将刚才创建的用户,赋予角色
我们使用创建的用户登录,可以看到开发者看不到系统设置,并且只能看到自己的仓库
角色权限说明:
- 项目管理员(Project Administrator):拥有项目的最高权限,可以对项目进行全面管理,包括创建和删除项目、管理项目成员和权限、配置项目属性、查看项目日志等。
- 维护人员(Maintainer):类似于项目管理员,但权限稍低,通常用于协助管理项目,可以进行项目的部分管理操作,如添加和删除镜像、配置镜像的复制和同步规则等。
- 开发者(Developer):具有对项目中镜像仓库的读写权限,可以拉取、推送和删除镜像,以及管理部分项目配置,但不能进行项目管理操作。
- 访客(Guest):只具有对项目中镜像仓库的只读权限,可以查看镜像和元数据,但无法对镜像进行修改或删除操作。通常用于分享项目或镜像给外部团队或用户。
- 受限访客(Restricted Guest):是一种更加受限的访客角色,通常用于提供给外部用户或系统,具有对项目中镜像仓库的只读权限,但可能会限制访问的部分内容或功能。
日志
日志菜单就是记录用户操作日志信息的。
使用Docker 连接 Harbor
首先登录私有仓库地址:
docker login -u admin -p Harbor12345 http://192.168.10.100:5000
会出现报错信息:
通常是因为 Docker 默认不信任 Harbor 所在的地址。具体来说Docker 可能会认为该地址不安全
解决方法
为了让 Docker 信任 Harbor,你需要在 Docker 配置文件中添加 Harbor 的地址,具体步骤如下:
1、打开 Docker 配置文件 /etc/docker/daemon.json,如果该文件不存在,请创建它。
sudo vim /etc/docker/daemon.json
2、添加以下内容(假设 Harbor 使用 HTTP 协议,端口为 5000):
{"insecure-registries": ["192.168.10.100:5000"]
}
3、保存并退出文件,然后重启 Docker、 Harbor
sudo systemctl restart docker
docker-compose相关命令
进入Harbor目录
docker-compose up -d #启动
docker-compose stop #停止
docker-compose restart #重新启动
docker-compose down && docker-compose up -d #先停止然后启动
再次登录,显示成功
Harbor推送和下载镜像
给本地镜像打标签
docker tag redis:7.4.4 192.168.10.100:5000/library/redis:7.4.4
redis:7.4.4
是本地镜像的名称和标签
192.168.10.100:5000
是 Harbor地址,library是仓库名,redis:7.4.4是镜像名和标签
打完标签后,我们可以看到redis镜像包多了一个,并且仓库地址已经改变
推送镜像到Harbor
进入仓库后,可以查看push命令作为参考
使用 docker push
将打标签后的镜像推送到 Harbor的 library 仓库:
docker push 192.168.10.100:5000/library/redis:7.4.4
此命令会将redis:7.4.4本地镜像推送到 Harbor 仓库中的 library
项目下
从 Harbor 下载镜像
docker pull 192.168.10.100:5000/library/redis:7.4.4
这会从 Harbor 仓库中拉取 redis:7.4.4 镜像。确保你的 Docker 客户端可以成功连接到 Harbor 仓库