目录
准备工作:部署docker服务
# harbor的部署需要环境中存在docker服务
# 1.安装和使用docker
# 安装docker源
[root@docker ~]# cd /etc/yum.repos.d/
[root@docker ~]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
[root@docker ~]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@docker ~]# yum -y install docker-ce
# 2.docker加速
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://xn5qdf32.mirror.aliyuncs.com"]
}
EOF
# 3.启动docker服务并设置开机自启
[root@docker ~]# systemctl enable --now docker
一.harbor简介
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,
其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
Harbor以 Docker 公司开源的 Registry 为基础,
提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、
AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。
用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。
二.harbor的特性
1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
2、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
3、支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
4、镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
5、图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
6、审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
7、支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
8、Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。
三.harbor部署
# 1.部署docker-compose服务
[root@harbor ~]# curl -SL https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
[root@harbor ~]# cd /usr/local/bin/
[root@harbor bin]# ls
docker-compose
# 给执行权限
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose
# 软链接
[root@harbor ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 2.下载harbor,这里我们选择2.9.1版本的harbor
[root@harbor ~]# wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz
[root@harbor ~]# ls
anaconda-ks.cfg harbor-offline-installer-v2.9.1.tgz
[root@harbor ~]# tar xf harbor-offline-installer-v2.9.1.tgz -C /usr/local/
[root@harbor ~]# cd /usr/local/
[root@harbor local]# ls
bin etc games harbor include lib lib64 libexec sbin share src
# 3.cp一份harbor.yml配置文件
[root@harbor harbor]# ls
common.sh install.sh prepare
harbor.v2.9.1.tar.gz harbor.yml.tmpl LICENSE
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# ls
common.sh harbor.yml install.sh prepare
harbor.v2.9.1.tar.gz harbor.yml.tmpl LICENSE
# 4.编辑harbor.yml文件
# 将hostname 这行改为本机的主机名
hostname: harbor.example.com
# 将https 这一块全部注释,因为我们用不到证书验证
# https related config
#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
# 在其中我们也可以看到harbor登录的默认密码为Harbor12345
# 数据存放路径为/data
# 5.安装harbor
[root@harbor harbor]# ./install.sh
......省略
[Step 5]: starting Harbor ...
[+] Running 10/10
✔ Network harbor_harbor Created 0.0s
✔ Container harbor-log Started 0.0s
✔ Container redis Started 0.0s
✔ Container harbor-portal Started 0.0s
✔ Container harbor-db Started 0.0s
✔ Container registry Started 0.0s
✔ Container registryctl Started 0.0s
✔ Container harbor-core Started 0.0s
✔ Container nginx Started 0.0s
✔ Container harbor-jobservice Started 0.0s
✔ ----Harbor has been installed and started successfully.----
[root@harbor harbor]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 2048 127.0.0.1:1514 0.0.0.0:*
LISTEN 0 2048 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 2048 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*
使用ip访问harbor的web页面
使用用户 admin 默认密码 Harbor12345登录
四.注意事项
- 在客户端上传镜像时一定要记得执行docker login进行用户认证,否则无法直接push
- 在客户端使用的时候如果不是用的https则必须要在客户端的/etc/docker/daemon.json配置文件中配置insecure-registries参数
- 数据存放路径应在配置文件中配置到一个容量比较充足的共享存储中
- Harbor是使用docker-compose命令来管理的,如果需要停止Harbor也应用docker-compose stop来停止,其他参数请--help