
7error/harbor该镜像是一个集成所有必要组件的goharbor一站式解决方案,旨在解决无需docker-compose即可部署Harbor容器镜像仓库的需求。通过单个容器即可运行完整的Harbor服务,包含PostgreSQL、Redis、Registry、Nginx等所有依赖组件,大幅简化部署流程,适合快速搭建私有镜像仓库。
首先创建必要的目录结构,并生成Harbor所需证书:
bashmkdir -p $(pwd)/harbor/{cert,registry,postgresql,redis,chart_storage,job_logs} # 设置PostgreSQL目录权限 chown -R 999:999 $(pwd)/harbor/postgresql # 生成证书(替换SNI中的域名和IP为实际值) docker run \ --entrypoint "" \ --user `id -u`:`id -g` \ --volume $(pwd)/harbor/cert:/tmp/cert \ --interactive \ --tty \ --rm \ 7error/harbor:1.10.4-8 \ bash -c "export SNI='192.168.9.119;your-harbor-domain;reg.domain.com;192.168.100.111' && cd /tmp/cert && /init-cert.sh"
注意:SNI环境变量需替换为实际使用的IP和域名,多个值用分号分隔
使用以下命令启动Harbor服务:
bashdocker run -d \ --name harbor \ --restart=always \ --env EXT_ENDPOINT=[***] \ # 外部访问端点 --env TZ=Asia/Shanghai \ # 设置时区 -p 8443:8443 \ # Harbor UI和API端口 -p 6080:6080 \ # 门户端口 -p 4443:4443 \ # Notary服务端口 -v $(pwd)/harbor:/data \ # 数据目录 -v $(pwd)/harbor/job_logs:/var/log/jobs \ # 任务日志 -v $(pwd)/harbor/postgresql:/var/lib/postgresql/data \ # PostgreSQL数据 -v $(pwd)/harbor/redis:/var/lib/redis \ # Redis数据 -v $(pwd)/harbor/registry:/storage \ # 镜像存储 -v $(pwd)/harbor/chart_storage:/chart_storage \ # Helm Chart存储 -v $(pwd)/harbor/cert/ca.pem:/etc/core/ca/ca.crt \ # CA证书 -v $(pwd)/harbor/cert/harbor.pem:/etc/cert/server.crt \ # 服务器证书 -v $(pwd)/harbor/cert/harbor-key.pem:/etc/cert/server.key \ # 服务器密钥 -v $(pwd)/harbor/cert/notary-signer-ca.crt:/etc/notary/notary-signer-ca.crt \ # Notary签名CA证书 -v $(pwd)/harbor/cert/notary-signer.key:/etc/notary/notary-signer.key \ # Notary签名密钥 -v $(pwd)/harbor/cert/notary-signer.crt:/etc/notary/notary-signer.crt \ # Notary签名证书 -v $(pwd)/harbor/cert/private_key.pem:/etc/core/private_key.pem \ # 核心私钥 -v $(pwd)/harbor/cert/root.crt:/etc/registry/root.crt \ # 注册表根证书 7error/harbor:1.10.4-8
Docker客户端配置
bash# 将CA证书添加到系统信任 cp $(pwd)/harbor/cert/ca.pem /etc/pki/ca-trust/source/anchors/ca.cert update-ca-trust force-enable update-ca-trust systemctl restart docker # 登录Harbor docker login -u admin --password Harbor*** reg.domain.com:8443 # 推送和拉取镜像示例 docker pull debian:10 docker tag debian:10 reg.domain.com:8443/library/debian:10 docker push reg.domain.com:8443/library/debian:10 docker pull reg.domain.com:8443/library/debian:10
Helm客户端配置
bashhelm repo update # 添加Harbor Chart仓库 helm repo add --ca-file $(pwd)/harbor/cert/ca.pem myrepo [***] helm repo update helm search myrepo # 搜索仓库中的Chart
bashdocker exec -it harbor bash -c "s6-service all status"
bashdocker exec -it harbor bash s6-service nginx stop # 停止Nginx服务 s6-service nginx reload # 重新加载Nginx配置 s6-service nginx restart # 重启Nginx服务
bashdocker exec -it harbor bash -c "ss -tunlp"
bashdocker exec -it harbor bash -c "pstree" # 查看详细进程树 docker exec -it harbor bash -c "pstree -a"

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务