- 前言
- 一、规划
- 1.1 服务规划
- 1.2 资源下载
- 二、部署
- 2.1 Docker 部署
- 2.2 Docker-Compose 部署
- 2.3 Harbor 部署
- 三、验证
- 3.1 可用性验证
- 3.2 功能性验证
- 四、FAQ
- 4.1 路径问题
- 4.2 服务器重启问题
- 4.3 配置文件修改
- 总结
在实际工作中,我们一般都是要部署自己的私有仓库的平台,如 Gitlab、Maven、Harbor等。今主要介绍的是 Harbor 私有镜像仓库的部署过程,首先介绍一下什么是 Harbor:Harbor is an open source registry that secures artifacts with policies and role-based access control, ensures images are scanned and free from vulnerabilities, and signs images as trusted. 简单的理解就是,Harbor 是基于镜像复制策略和角色访问控制的开源注册表。
一、规划 1.1 服务规划| OS | server | version | 备注 |
|---|---|---|---|
| CentOS7.8(162.14.76.192)-4C/8G/50G | docker | 18.06.3 | 私有镜像仓库 |
| docker-compose | 2.1.1 | ||
| Harbor | 2.3.4 | ||
| CentOS7.8(162.16.234.128)-1C/2G/50G | docker | 18.06.3 | 验证私有镜像仓库可用性 |
-
Harbor 下载地址
-
Docker-compose 下载地址
可参照阿里来部署,大家可以去看看,这里就不在演示。
2.2 Docker-Compose 部署Docker 部署文档
1、资源下载
去 GitHub 下载资源,不过下载非常慢(国外),建议通过迅雷下载,还是比较快的,资源下载地址请看 1.2 小节。
2、将下载资源上传至服务器并做软连接
ln -s /opt/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
3、赋予 x 权限
chmod +x /opt/docker-compose-linux-x86_64
4、查看版本
docker-compose -v Docker Compose version v2.1.12.3 Harbor 部署
1、资源下载
2、将下载资源上传至服务器并解压
tar xzf harbor-offline-installer-v2.3.4.tgz # 查看一下解压内容 cd harbor && ll total 596288 -rw-r--r-- 1 root root 3361 Nov 9 19:01 common.sh -rw-r--r-- 1 root root 610560420 Nov 9 19:01 harbor.v2.3.4.tar.gz -rw-r--r-- 1 root root 7840 Nov 9 19:01 harbor.yml.tmpl -rwxr-xr-x 1 root root 2500 Nov 9 19:01 install.sh -rw-r--r-- 1 root root 11347 Nov 9 19:01 LICENSE -rwxr-xr-x 1 root root 1881 Nov 9 19:01 prepare
3、修改配置文件
cp harbor.yml.tmpl harbor.yml vim harbor.yml
# 主要修改以下几部分就可以
hostname: 162.14.76.192 # 服务器IP或域名
http:
port: 80
harbor_admin_password: zhurs@123 # 登录密码
database:
password: root123 # 数据存储密码
max_idle_conns: 100
max_open_conns: 900
data_volume: /data/harbor/data # 数据存储路径(无需手动创建)
trivy:
ignore_unfixed: false
skip_update: false
insecure: false
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /data/harbor/logs # 日志路径(需手动创建,否则报错无法找打路径)
_version: 2.3.0
proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- trivy
4、更新配置文件
./prepare
5、安装
./install.sh
6、查看一下容器状态
三、验证 3.1 可用性验证浏览器输入http://162.14.76.192/
登录用户:admin
登录密码:zhurs@123
3.2 功能性验证登录成功!!
1、Docker 客户端配置 Harbor 私服连接
cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["162.14.76.192"] }
EOF
2、重启 Docker 客户端
systemctl daemon-reload systemctl restart docker
3、Docker 客户端登录 Harbor 私服
docker login -u admin -p zhurs@123 162.14.76.192 WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
4、任意 pull 一个测试镜像
docker pull busybox
5、将该镜像打 tag 并 push 到 Harbor 镜像仓库
docker tag busybox:latest 162.14.76.192/library/busybox:v1.0 # 查看本地镜像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE 162.14.76.192/library/busybox v1.0 7138284460ff 2 weeks ago 1.24MB busybox latest 7138284460ff 2 weeks ago 1.24MB # push到Harbor仓库 docker push 162.14.76.192/library/busybox:v1.0 The push refers to repository [162.14.76.192/library/busybox] d94c78be1352: Pushed v1.0: digest: sha256:34efe68cca33507682b1673c851700ec66839ecf94d19b928176e20d20e02413 size: 527
6、在 Harbor web 界面看看 push 的镜像
7、删除本地镜像,并 pull 远程 Harbor 仓库镜像
# 拉取镜像 docker pull 162.14.76.192/library/busybox:v1.0 v1.0: Pulling from library/busybox e685c5c858e3: Pull complete Digest: sha256:34efe68cca33507682b1673c851700ec66839ecf94d19b928176e20d20e02413 Status: Downloaded newer image for 162.14.76.192/library/busybox:v1.0 # 查看镜像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE 162.14.76.192/library/busybox v1.0 7138284460ff 2 weeks ago 1.24MB
可通过 web 界面看到我们的操作日志
至此,基本的搭建已经完成!!且测试了 Harbor 私服的可用性。
四、FAQ 4.1 路径问题1、数据路径
在配置文件中定义,定义后无需手动创建(当然也可手动创建),在执行./install.sh后会自动创建。
2、日志路径
指定路径后需要手动创建,否则报错(找不到日志路径),我测试的时候是这样的,不知道各位小伙伴是什么测试结果。
3、配置文件路径
需进入 Harbor 解压目录执行相关操作,包括配置文件,脚本执行等操作,当然你也可以做相关的软连接统一目录结构。
4.2 服务器重启问题对 Harbor 所在的服务器重启后,可能无法正常访问 Harbor,如下图所示,这是重启后一些服务的状态,明显看到有好几个服务已经宕掉了。
解决的方法就是:进入 Harbor 的解压目录并执行./install.sh,直到显示如下图后,就可正常访问了。
4.3 配置文件修改当我想修改 Harbor web 端口为 82 时,只需修改 harbor.yml 文件的 port,修改完成后直接执行 ./install.sh 即可生效,如下图是修改后的登录结果,如果是云服务,注意安全组开放访问端口。
总结以上就是 Harbor 私服的部署过程,其实部署很简单,没有什么技术可言,只是简单的记录一下,部署过程也基本上是一键部署。更多的还是需要我们了解 Docker 的工作原理、底层技术,以及部署 Harbor 的目的和意义。
<点击跳转至开头>



