linux中搭建docker私有仓库二:Harbor

绝地灬酷狼 2023-05-30 09:21 75阅读 0赞

上一篇中介绍了docker的公共仓库docker hub及官方的私有仓库docker registry,这一篇介绍企业级的registry服务器Harbor。
Harbor提供了更好的性能和安全并且提供了web界面。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。关于harbor的实现可以参考官方文档或者这个博客。

安装过程

1.下载安装包并解压

首先需要下载合适版本的包,这个可以通过在github选中版本下载

  1. ## 下载速度较慢
  2. wget https://github.com/goharbor/harbor/releases/download/v1.9.2/harbor-offline-installer-v1.9.2.tgz
  3. ## 解压文件
  4. tar zvxf harbor-offline-installer-v1.9.2.tgz

2.安装docker-compose

docker-compose是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。linux中安装从官网选择对应的版本进行安装即可。

  1. ## 过程比较慢,提前不用创建/usr/local/bin/docker-compose(路径不可更改)
  2. curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  3. ## 将可执行权限用于二进制文件
  4. chmod +x /usr/local/bin/docker-compose
  5. ## 查看是否执行成功
  6. docker-compose --version
  7. ## 输出以下表示成功
  8. docker-compose version 1.24.1, build 4667896b

在执行第一条时候,如果出现以下错误。

  1. curl: (35) Peer reports incompatible or unsupported protocol version.

这是由于版本不兼容或不支持的原因,执行yum update -y nss curl libcurl后继续执行即可。

如果使用curl -L获取不到docker-compose,可以访问官网找到合适版本的文件下载后,上传到/usr/local/bin中并重命名为docker-compose再进行权限修改。

3.Harbor安装配置

进入解压后的harbor文件夹中,找到harbor.yml文件(之前的版本好像是harbor.cfg文件),修改下面内容:

  1. ## 修改为主机ip,不能是127.0.0.1或者localhost
  2. hostname: 192.168.80.128
  3. ## 端口号 默认为80
  4. port: 8100
  5. ## admin账号的密码
  6. harbor_admin_password: 663821
  7. ## 数据存放地址
  8. data_volume: /home/harbordata
  9. ## 注释掉https相关配置
  10. # https related config
  11. #https:
  12. # https port for harbor, default is 443
  13. # port: 443
  14. # The path of cert and key files for nginx
  15. #certificate: /your/certificate/path
  16. #private_key: /your/private/key/path

修改完成保存后,在harbor文件夹下执行./install.sh
在这里插入图片描述
它会经历好几个步骤:加载Harbor镜像(初次安装耗时较长)、准备运行环境、通过docker-compose启动harbor。这个过程较为漫长。完成后就可以启动浏览器访问http:ip/端口,账号为admin,密码是上面你设置的那个。
在这里插入图片描述
登录后的界面
在这里插入图片描述
接下来在项目中。点击新建项目,创建一个项目
在这里插入图片描述

4.镜像下载与上传

在docker13后,register只能用https,由于我们配的都是http的,所以要先在/etc/docker/目录创建daemon.json文件(如果有,直接加入)并加入如下内容:

  1. ## 这里的ip和port需要与你刚配置的harbor.yml中一致
  2. { "insecure-registries":["ip:port"] }

完成后重启docker及harbor容器。

  1. ## 启动docker
  2. systemctl daemon-reload
  3. systemctl restart docker
  4. ## 启动harbor
  5. docker-compose start

上传
提交镜像,如本地有一个registry镜像,需要提交到仓库:

  1. [root@admin harbor]# docker login 192.168.80.128:8100
  2. Username: admin
  3. Password:
  4. ## 提示我密码强度太弱
  5. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
  6. Configure a credential helper to remove this warning. See
  7. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  8. Login Succeeded
  9. ## 打标签 这里注意test为你刚建的那个项目名
  10. [root@admin harbor]# docker tag registry 192.168.80.128:8100/test/registry:latest
  11. ## 查看打完标签的镜像列表
  12. [root@admin harbor]# docker image ls
  13. 192.168.80.128:8100/test/registry latest f32a97de94e1 8 months ago 25.8MB
  14. registry latest f32a97de94e1 8 months ago 25.8MB
  15. ## 提交
  16. [root@admin harbor]# docker push 192.168.80.128:8100/test/registry:latest
  17. The push refers to repository [192.168.80.128:8100/test/registry]
  18. 73d61bf022fd: Pushed
  19. 5bbc5831d696: Pushed
  20. d5974ddb5a45: Pushed
  21. f641ef7a37ad: Pushed
  22. d9ff549177a9: Pushed
  23. latest: digest: sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774 size: 1363

提交完成后可以在仓库中看见一条数据。
在这里插入图片描述
下载

  1. docker pull 192.168.80.128:8100/test/registry:latest

其他命令

  1. ## 退出仓库
  2. docker logout 192.168.80.128:8100
  3. ## 暂停harbor
  4. docker-compose stop
  5. ## 启动harbor
  6. docker-compose start
  7. ## 前台运行
  8. docker-compose up
  9. ## 后台运行
  10. docker-compose up -d
  11. ## 停止并移除容器
  12. docker-compose down

如果想要继续更改harbor配置,那么改完后需要重新初始化Harbor:

  1. # 暂停Harbor实例群
  2. docker-compose down -v
  3. # 生成配置文件,根据 harbor.yml 配置生成docker-compose文件
  4. ./prepare
  5. # 后台启动Harbor实例群
  6. docker-compose up -d

5. 错误信息

5.1 docker-compose start异常

有时候,重启docker后启动compose会出现以下问题。
在这里插入图片描述
这种进入harbor的目录下,执行docker-compose up -d;

5.2 启动时harbor-db一直在启动

启动时,发现harbor-db一直在重新启动;我的问题是,在harbor.yml中设置的data_volume在harbor目录中,设置在外面重启就好了

发表评论

表情:
评论列表 (有 0 条评论,75人围观)

还没有评论,来说两句吧...

相关阅读