本篇博客将为您介绍如何利用Harbor构建一个安全可靠的私有仓库,以确保您的软件包和容器镜像得到妥善的管理和保护。
一、什么是Harbor?
Harbor是由VMware开发的一个开源的企业级容器镜像仓库,它可以为企业提供一个集中式的管理平台,用于存储、分发和保护Docker镜像和Helm Chart。Harbor支持角色基础的访问控制、镜像复制、内置的安全扫描和漏洞管理等功能,使得用户可以更好地掌控其软件交付过程。
二、搭建Harbor私有仓库的步骤
安装harbor前请先安装dokcer环境:可参考centos7安装docker
1.安装harbor
您可以从Harbor的官方GitHub页面(https://github.com/goharbor/harbor/releases)下载最新的Harbor安装包。根据您的操作系统选择适当的版本,下载后传入虚拟机内。
或者使用命令(本文使用的版本是v2.7.1):
# 可能下载不成功,建议下载后上传到环境
wget https://github.com/goharbor/harbor/releases/download/v2.7.1/harbor-offline-installer-v2.7.1.tgz
yum install -y docker-compose
2.安装harbor
[root@aliyun composetest]# ls
harbor-offline-installer-v2.7.1.tgz
[root@aliyun composetest]# mkdir /harb
[root@aliyun composetest]# mv harbor-offline-installer-v2.7.1.tgz /harb/
[root@aliyun composetest]# cd /harb/
[root@aliyun harb]# ls
harbor-offline-installer-v2.7.1.tgz
[root@aliyun harb]# tar xf harbor-offline-installer-v2.7.1.tgz
[root@aliyun harb]# ls
harbor harbor-offline-installer-v2.7.1.tgz
[root@aliyun harb]# cd harbor/
[root@aliyun harbor]# ls
common.sh harbor.v2.7.1.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
3.修改配置文件
[root@aliyun harbor]# cp harbor.yml.tmpl harbor.yml
[root@aliyun harbor]# vim harbor.yml
修改IP,并且把下面的https的注释掉
注释以下行:
4.安装harbor
./install.sh
# 查看是否安装成功
docker-compose ps
三、harbor的基本使用
1.网页登录
浏览器输入 http://ip:80 访问 Harbor 页面,用户名和密码为 harbor.yml 配置文件中默认设置的 admin,Harbor12345。
看到以下页面就说明登录成功:
2.终端登录
编辑 /etc/docker/daemon.json
,设置允许访问的 HTTP 仓库地址。
{
"insecure-registries":["ip:80"] #harbor仓库IP地址
}
修改后重启docker服务,开启harbor:
systemctl daemon-reload
systemctl restart docker
#进入harbor目录后执行以下命令
docker compose restart
登录终端,出现Login Succeeded
说明登录仓库成功:
[root@aliyun harbor]# docker login IP:80
Username: admin
Password:
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
3.镜像推送
修改镜像 tag:
docker tag busybox:latest ip:80/library/busybox:latest
推送镜像到 Harbor:
[root@aliyun harbor]# docker push ip:80/library/busybox
Using default tag: latest
The push refers to repository [ip:80/library/busybox]
3d24ee258efc: Pushed
latest: digest: sha256:023917ec6a886d0e8e15f28fb543515a5fcd8d938edb091e8147db4efed388ee size: 528
登录仓库查看: