安装单机版Harbor
1. 环境准备
硬件最低要求:
- CPU:2核
- 内存:4GB
- 磁盘:100GB 软件最低要求:
- Docker:> 20.10.0
- Docker Compose:> 2.3
- OpenSSL:最新即可
2. 下载Harbor安装包
Harbor提供离线和在线安装包,用户可以根据需要选择下载。离线下载地址为:https://github.com/goharbor/harbor/releases
2.1 解压离线安装包
shell
tar -xvf harbor-offline-installer-v2.15.2.tgz3. 配置Harbor
进入harbor安装目录,修改配置文件
shell
cd harbor
#复制 harbor的配置文件并改名harbor.yml
cp -ar harbor.yml.tmpl harbor.yml
#修改文件
vim harbor.yml修改内容如下:
yaml
# 修改hostname,不能说localhost/127.0.0.1,否则会报错
hostname: harbor.devops.com
http:
# 如果80端口被占用,修改http端口为90
port: 90
# 注释掉https配置,因为我们使用的是http
#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
# 放开注释external_url并修改external_url为http://harbor.devops.com:90
external_url: http://harbor.devops.com:90
# 镜像存储路径
data_volume: /data这里使用的是Harbor的默认安装方式,它会使用内置的PostgreSQL数据库和Redis缓存服务。 配置主机解析,将harbor.devops.com解析到192.168.1.100
cmd
# 编辑windows的/hosts文件
notepad C:/Windows/System32/drivers/etc/hosts
# 添加以下内容
127.0.0.1 harbor.devops.com重启主机解析服务
4. 安装Harbor
shell
# 做下准备工作
./prepare
sudo ./install.sh脚本会自动拉取或加载所需的Docker镜像,并启动所有服务。 通过以下命令查看所有容器是否正常运行:
shell
# 如果看到所有容器都是healthy状态,说明安启动成功
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
62ddd0bcfd5c goharbor/nginx-photon:v2.15.2 "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes (healthy) 0.0.0.0:90->8080/tcp, [::]:90->8080/tcp nginx
171262cc54d2 goharbor/harbor-jobservice:v2.15.2 "/harbor/entrypoint.…" 7 minutes ago Up 7 minutes (healthy) harbor-jobservice
53ee546f20fd goharbor/harbor-core:v2.15.2 "/harbor/entrypoint.…" 7 minutes ago Up 7 minutes (healthy) harbor-core
87661dac7fb0 goharbor/registry-photon:v2.15.2 "/home/harbor/entryp…" 7 minutes ago Up 7 minutes (healthy) registry
d5e37f742280 goharbor/harbor-registryctl:v2.15.2 "/home/harbor/start.…" 7 minutes ago Up 7 minutes (healthy) registryctl
e3733c61c448 goharbor/harbor-db:v2.15.2 "/docker-entrypoint.…" 7 minutes ago Up 7 minutes (healthy) harbor-db
2d60cddc1e88 goharbor/valkey-photon:v2.15.2 "valkey-server /etc/…" 7 minutes ago Up 7 minutes (healthy) redis
64d0d07661f4 goharbor/harbor-portal:v2.15.2 "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes (healthy) harbor-portal
8c68ae25c19d goharbor/harbor-log:v2.15.2 "/bin/sh -c /usr/loc…" 7 minutes ago Up 7 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log5. 访问Harbor
打开浏览器,输入http://harbor.devops.com:90,即可访问Harbor。
输入用户名和密码,默认是admin/Harbor12345
6. 推送镜像到Harbor
登录Harbor,点击新建项目,输入项目名称,点击创建。
点击项目名称,即可查看项目详情。
点击推送命令可以看到Docker镜像推送方式:
查看装有Docker的主机有哪些镜像:
shell
docker images
i Info → U In UseIMAGE ID DISK USAGE CONTENT SIZE EXTRA
gitlab/gitlab-ce:12.10.14-ce.0 918b5377bc06 3.12GB 879MB U
gitlab/gitlab-runner:v12.10.3 0ac0cddab4b5 619MB 199MB U
goharbor/harbor-core:v2.15.2 6f0498fbc679 522MB 259MB U
goharbor/harbor-db:v2.15.2 e1e7a6d32182 718MB 354MB U
goharbor/harbor-exporter:v2.15.2 8c12051d6434 334MB 165MB
goharbor/harbor-jobservice:v2.15.2 2f068549b1fc 486MB 241MB U
goharbor/harbor-log:v2.15.2 25325fc182c0 458MB 226MB U
goharbor/harbor-portal:v2.15.2 684f469dfc8a 427MB 211MB U
goharbor/harbor-registryctl:v2.15.2 a2f7576589b5 458MB 228MB U
goharbor/nginx-photon:v2.15.2 f4bed8d2f5ee 409MB 202MB U
goharbor/prepare:v2.15.2 7faea28802da 545MB 266MB
goharbor/registry-photon:v2.15.2 2c730b6c088a 296MB 147MB U
goharbor/trivy-adapter-photon:v2.15.2 2135d25681eb 975MB 486MB
goharbor/valkey-photon:v2.15.2 b1c20ea5bc7e 462MB 228MB U
hello-world:latest 96498ffd522e 25.9kB 9.49kB U
my-gitlab:12.10.14-serverless-zh c5c8ffab61f7 3.12GB 879MB给镜像打标签
shell
docker tag hello-world:latest harbor.devops.com:90/java_team/hello-world:latest推送镜像到Harbor
shell
jack@DESKTOP-5GC5BDK:/opt/harbor$ docker push harbor.devops.com:90/java_team/hello-world:latest
The push refers to repository [harbor.devops.com:90/java_team/hello-world]
4f55086f7dd0: Unavailable
push access denied, repository does not exist or may require authorization: authorization failed: no basic auth credentials报错根因是:Docker推送时没有携带登录凭证。解决方法:
shell
#把jack加入docker组,彻底告别sudo
sudo usermod -aG docker jack
newgrp docker # 或者重新登录 WSL 生效登录Harbor,输入用户名和密码,默认是admin/Harbor12345
shell
docker login harbor.devops.com:90
Username: admin
Password:
WARNING! Your credentials are stored unencrypted in '/home/jack/.docker/config.json'.
Configure a credential helper to remove this warning. See
https://docs.docker.com/go/credential-store/
Login Succeeded再次推送Harbor镜像: docker push harbor.devops.com:90/java_team/hello-world:latest
shell
docker push harbor.devops.com:90/java_team/hello-world:latest
The push refers to repository [harbor.devops.com:90/java_team/hello-world]
4f55086f7dd0: Pushed
latest: digest: sha256:d1a8d0a4eeb63aff09f5f34d4d80505e0ba81905f36158cc3970d8e07179e59e size: 1023
i Info → Not all multiplatform-content is present and only the available single-platform image was pushed
sha256:96498ffd522e70807ab6384a5c0485a79b9c7c08ca79ba08623edcad1054e62d -> sha256:d1a8d0a4eeb63aff09f5f34d4d80505e0ba81905f36158cc3970d8e07179e59e