Rocky Linux搭建私有镜像仓库

社区运维

1.镜像仓库简介

  在公司内网环境执行项目CI/CD的时候,通常会将服务打成镜像存放到镜像仓库,最常用的镜像仓库是docker官方的docker hub,但有可能因为网络限制和安全等原因,在公司内网无法将镜像上传到docker hub,这个时候就需要一个私有的镜像仓库来存放镜像了。
目前常用的镜像仓库方案有:
(1)harbor
(2)nexus
  harbor是一个开源的镜像仓库,由go语言开发,具有免费、轻量、性能好等优点。nexus有社区版和商业版,功能大而全,除了可以作为镜像源以外,还能作为yaml源、pypi源、maven仓库。
  本次以harbor为例,在Rocky Linux上部署harbor,并创建镜像上传到 harbor。

2.环境准备

(1)装有Rocky Linux操作系统的服务器
(2)部署有docker,并正常运行
(3)安装有docker-compose
说明:
安装docker-compose十分简单,一条命令就行了:

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

3.部署harbor

官方下载地址:https://github.com/goharbor/harbor/tags
可以在官网下载最新的离线安装包:harbor-offline-installer-v2.11.1.tgz
下载之后将安装包上传到服务器安装目录: picture.image 解压安装包:

tar xf harbor-offline-installer-v2.11.1.tgz

看下安装包里都有哪些文件: picture.image 其中harbor.v2.11.1.tar.gz是官方创建的镜像包,将其导入到本地:

docker load -i harbor.v2.11.1.tar.gz

picture.image 查看下有哪些镜像:

docker images

picture.image 可以看到除了harbor本身的微服务,还包括有harbor服务依赖的中间件。
再回头看安装包里面的其他文件,可以看到有个临时的配置文件harbor.yml.tmpl

cp harbor.yml.tmpl harbor.yml

看下里面的配置项:

grep -Ev "^$|#" harbor.yml

hostname: reg.mydomain.com // 访问地址
http:
  port: 80 // http端口
https:
  port: 443 // https端口
  certificate: /your/certificate/path
  private_key: /your/private/key/path
harbor_admin_password: xxxxxxx // admin账号默认密码
database: // 数据库相关信息
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
  conn_max_lifetime: 5m
  conn_max_idle_time: 0
data_volume: /data // 数据目录
trivy:
  ignore_unfixed: false
  skip_update: false
  skip_java_db_update: false
  offline_scan: false
  security_check: vuln
  insecure: false
  timeout: 5m0s
jobservice:
  max_job_workers: 10
  job_loggers:
    - STD_OUTPUT
    - FILE
notification:
  webhook_job_max_retry: 3
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.11.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
  interval: 24h
  dryrun: false
cache:
  enabled: false
  expire_hours: 24
  主要是要将hostname修改为服务器ip地址,如果有需要也可以引入证书,基于https访问harbor服务,因为我这里是测试,所以将https相关配置注释掉了(不注释的话,执行prepare命令会报错),在生产环境切记用https协议访问harbor服务。
修改完配置之后,执行prepare命令:

./prepare

picture.image 可以看到生成了一个docker-compose.yml文件和一堆配置文件,docker-compose.yml文件生成在当前目录,其他组件的配置文件生成在common目录下了:

picture.image 万事俱备,可以通过docker-compose命令执行安装了:

docker-compose -f docker-compose.yml up -d

picture.image 可以看到服务都启动成功了,可以通过docker-compose命令检查服务是否运行正常,命令如下:

docker-compose ps -a

picture.image 可以看到服务状态都是健康的。

4.访问harbor web界面

我们之前配的地址是服务器地址,通过这个地址就可以访问harbor了。

picture.image 以上就是harbor的管理界面了,到此harbor就部署完成了。 之后我会教大家如何制作镜像并将镜像上传到harbor。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论