共计 2376 个字符,预计需要花费 6 分钟才能阅读完成。
一、Harbor 简介
1. 概述
有可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能
Harbor是VMware公司开源的企业级Docker Registry项目。
2. 架构
核心组件:
Proxy
这是一个反向代理组件,通过一个前置的反向代理统一接收浏览器、Docker 客户端的请求,并将请求转发给后端不同的服务。
Registry
负责储存 Docker 镜像,处理 docker push/pull
命令来上传和下载。
Core services
Harbor 的核心功能,包括UI、webhook(网站的一些服务功能)、 token (提供身份验证服务)服务。
Database
数据库,为 core services 提供数据库服务,数据库记录镜像的元信息及用户的身份信息
Log collector
负责收集其他组件的日志,以供然后进行分析以及进行健康检查。
二、Harbor 安装
1. 安装 docker-compose
如果已安装则跳过。
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2. 下载安装包
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-online-installer-v2.7.0.tgz
3. 修改配置文件
tar -zxvf harbor-online-installer-v2.7.0.tgz -C /usr/local/ && \
cd /usr/local/harbor/ && \
cp harbor.yml.tmpl harbor.yml && \
vim harbor.yml
修改内容:
# 修改为服务器所在 ip
hostname: 172.21.9.203
# 管理员密码
harbor_admin_password: Harbor12345
# 存储路径 - 会将数据库、redis等映射文件放在该目录下
data_volume: /data
注释内容:
# 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
4. 安装
这里需要注意的是 data_volume
配置的所在目录,有没有历史文件,否则有历史数据的话可能导致 harbor 启动失败。
./install.sh
等脚本运行完,登陆后如图所示:
5. 配置开机自启
创建开机自启配置文件:
cat > /lib/systemd/system/harbor.service<<EOF
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF
这里注意,可能 docker-compose
的存放路径不一样,使用 which docker-compose
查看并修改即可。
# 配置开启自启
systemctl enable harbor
三、配置 Docker 仓库
- 情况一
没有/etc/docker/daemon.json
文件,直接运行命令:
# ip 地址填自己服务器的
cat > /etc/docker/daemon.json <<EOF
{
"insecure-registries":["172.21.9.203:80"]
}
EOF
# 重新加载配置文件并重启 docker
systemctl daemon-reload && systemctl restart docker
- 情况二
/etc/docker/daemon.json
文件已经存在,需要后面加一条内容,如下:
{
"registry-mirrors":["https://c05xby84.mirror.aliyuncs.com"],
"insecure-registries":["172.21.9.203:80"]
}
要注意 json 文件的格式,新增一条内容的逗号不能少,否则 docker 起不来。
# 重新加载配置文件并重启 docker
systemctl daemon-reload && systemctl restart docker
四、Harbor 简单使用
# 登陆 admin\Harbor12345
docker login 172.21.9.203:80
# 拉取一个官方镜像
docker pull alpine
# 重新打标签
docker tag alpine 172.21.9.203:80/library/alpine
# 推送镜像
docker tag alpine 172.21.9.203:80/library/alpine
可以看见已经上传:
提醒:本文发布于643天前,文中所关联的信息可能已发生改变,请知悉!