harbor是麒麟os上构建企业级私有镜像仓库的官方推荐方案。需先验证docker、docker-compose、时间同步及selinux状态;再下载适配架构的离线安装包并解压;配置harbor.yml并生成匹配hostname的自签名证书;执行离线安装脚本启用安全组件;最后注入证书、重启docker,通过https访问web界面完成初始化。

如果您已在麒麟OS上成功部署Docker,但需要构建企业级、带Web界面与权限控制的私有镜像仓库,则Harbor是官方推荐的生产就绪方案。以下是针对麒麟OS V10 SP2/SP3(x86_64或aarch64架构)部署Harbor的完整操作路径:
一、环境预检与Docker服务确认
Harbor依赖Docker引擎、docker-compose(v2.10+)、OpenSSL及Python 3.7+运行时,且要求Docker已启用systemd服务并正常运行。需先验证基础容器平台就绪状态,排除因内核模块缺失或cgroup v2不兼容导致的后续失败。
1、执行sudo systemctl is-active docker确认输出为active;
2、运行docker version --format '{{.Server.Version}}'确保Docker版本≥24.0.0;
3、检查compose版本:docker compose version,若报错则需手动安装docker-compose-plugin;
4、验证系统时间同步:timedatectl status | grep "System clock synchronized",必须为yes;
5、确认SELinux处于permissive模式:sudo setenforce 0 && sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config。
二、下载并解压Harbor离线安装包
麒麟OS多数生产环境处于内网,无法直连GitHub,因此必须使用Harbor官方发布的离线安装包(含所有依赖镜像)。该包已适配国产化环境,避免在线拉取时因网络策略或镜像源不可达导致部署中断。
1、访问Harbor GitHub Release页面,下载对应架构的harbor-offline-installer-v2.12.0-*.tgz(aarch64选arm64后缀,x86_64选amd64后缀);
2、将压缩包上传至麒麟OS目标服务器的/opt/harbor目录;
3、执行sudo tar -xzf harbor-offline-installer-v2.12.0-*.tgz -C /opt/解压;
4、进入目录:cd /opt/harbor,确认存在harbor.yml、install.sh、prepare等核心文件。
三、配置harbor.yml并生成证书
Harbor强制启用HTTPS,需为域名生成自签名证书。即使仅本地访问,也必须配置有效TLS证书,否则Web界面与API均拒绝连接。配置过程需严格匹配hostname字段,避免浏览器证书警告阻断登录。
1、备份原始配置:sudo cp harbor.yml harbor.yml.bak;
2、编辑配置文件:sudo vim harbor.yml;
3、修改hostname字段为可解析的FQDN(如harbor.kylin.local),禁止使用127.0.0.1或localhost;
4、设置https部分:将port设为443,certificate与private_key路径指向/data/cert/harbor.kylin.local.crt与/data/cert/harbor.kylin.local.key;
5、创建证书目录并生成证书:sudo mkdir -p /data/cert && cd /data/cert && sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.kylin.local.key -x509 -days 3650 -out harbor.kylin.local.crt,Common Name必须填入步骤3中设定的hostname。
四、执行离线安装与服务启动
Harbor安装脚本会自动加载离线包中预置的镜像、生成必要配置、初始化数据库,并通过docker-compose启动全部7个服务组件(core、portal、registry、clair、trivy、jobservice、redis)。该过程不依赖外部网络,适合等保三级环境部署。
1、赋予执行权限:sudo chmod +x install.sh;
2、运行离线安装:sudo ./install.sh --with-notary --with-clair --with-trivy(启用内容信任、漏洞扫描与合规检查);
3、等待脚本输出"Harbor has been installed and started successfully.";
4、检查容器状态:sudo docker-compose -f /opt/harbor/docker-compose.yml ps,所有服务应显示Up状态;
5、验证端口监听:sudo ss -tlnp | grep ':443\|:80',确认443端口由nginx进程绑定。
五、配置Docker客户端信任与首次登录
Docker守护进程默认拒绝向HTTP仓库推送镜像,且对HTTPS仓库校验证书链。需将Harbor证书注入系统信任库,并重启Docker服务,否则push操作将返回x509 certificate signed by unknown authority错误。
1、复制证书至Docker信任目录:sudo mkdir -p /etc/docker/certs.d/harbor.kylin.local;
2、拷贝证书:sudo cp /data/cert/harbor.kylin.local.crt /etc/docker/certs.d/harbor.kylin.local/ca.crt;
3、重启Docker:sudo systemctl restart docker;
4、在浏览器中访问https://harbor.kylin.local,使用默认账号admin与密码Harbor12345登录;
5、登录后立即修改admin密码,并创建项目(如library),设置为公开或私有权限模型。











