Docker搭建私有仓库之Harbor的步骤

 更新时间:2020年08月03日 10:19:11   作者:wx5cc19525285e2  
这篇文章主要介绍了Docker搭建私有仓库之Harbor的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Harbor

 Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装, 它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库【注:helm就相当于k8s的yum】。另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。

一、搭建Harbor私有仓库

Harbor私有仓库和Registry私有仓库相比,功能强大很多,并且支持web图形化管理,所以在企业中非常受到欢迎!

1)案例描述

两台docker服务器,dockerA创建Harbor私有仓库,dockerB用于测试!






1、DockerA服务器的操作

[root@dockerA ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
//下载docker-compose工具所需的依赖(部署docker环境时,就可以安装了)
[root@dockerA ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
//下载docker-compose工具
[root@dockerA ~]# chmod +x /usr/local/bin/docker-compose
[root@dockerA ~]# docker-compose -v      
docker-compose version 1.25.0, build 0a186604
//查看docker-compose工具版本信息,确保已经安装成功

配置Harbor

同样也是上github官网搜索,找到相应的版本即可,这里就不多做截图了!
网址:https://github.com/goharbor/harbor/releases
如图:

[root@dockerA ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
//下载harbor软件包
[root@dockerA ~]# tar zxf harbor-offline-installer-v1.7.0.tgz -C /usr/local
[root@dockerA ~]# cd /usr/local/harbor/
[root@dockerA harbor]# vim harbor.cfg 
//编写其配置文件,其他版本默认是cfg结尾的,这个版本是yml结尾的,文件内容都一样的
hostname=192.168.45.129         //更改其为本机的IP地址
harbor_admin_password: Harbor12345    
//这一行原本就是存在,不需要自行填写,只需记得它的用户名和密码即可,有需要可以自行进行修改
[root@dockerA harbor]# ./install.sh        //执行安装脚本

[root@dockerA harbor]# vim /usr/lib/systemd/system/docker.service 
//编写docker主配置文件
 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
 //跟registry差不多,主要harbor配置文件中没有填写端口号,这里也可添加,否则可能会出现错误
[root@dockerA harbor]# systemctl daemon-reload 
[root@dockerA harbor]# systemctl restart docker      //重新启动docker服务
[root@dockerA harbor]# pwd
/usr/local/harbor             //注意目录,必须在这个目录下
[root@dockerA harbor]# docker-compose start
//使用docker-compose工具启动所有容器(因为在重新启动docker时,所有的容器都已经关闭了)
[root@dockerA harbor]# netstat -anpt | grep 80       //确认80端口在监听
tcp6    0   0 :::80          :::*          LISTEN   22871/docker-proxy 

客户端访问web页面:





上传镜像

仓库搭建完成后,接着在dockerA(harbor)服务器上上传镜像!
[root@dockerA harbor]# docker login -u admin -p Harbor12345 192.168.45.129 
//指定用户名、密码及harbor服务器地址登录
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
[root@dockerA ~]# docker tag centos:7 192.168.45.129/test/centos:7
//需要更改镜像名称,test是刚才创建的仓库名称
[root@dockerA ~]# docker push 192.168.45.129/test/centos:7
//向harbor服务器的test仓库上传镜像

上传完成后,如图:

二、在dockerB服务器上测试下载镜像

[root@dockerB ~]# vim /usr/lib/systemd/system/docker.service 
//编写docker的主配置文件
 13 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
//指定harbor服务器的IP地址
[root@dockerB ~]# systemctl daemon-reload 
[root@dockerB ~]# systemctl restart docker    //重新启动docker服务
[root@dockerB ~]# docker login -u admin -p Harbor12345 192.168.45.129
//登录到harbor服务器
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          //登录成功
[root@dockerB ~]# docker pull 192.168.45.129/test/centos:7
//下载镜像进行测试
[root@dockerB ~]# docker images
REPOSITORY          TAG         IMAGE ID      CREATED       SIZE
192.168.45.129/test/centos  7          b5b4d78bc90c    2 months ago    203MB

到此这篇关于Docker搭建私有仓库之Harbor的步骤的文章就介绍到这了,更多相关Docker搭建私有仓库Harbor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker动态给容器Container暴露端口操作

    Docker动态给容器Container暴露端口操作

    这篇文章主要介绍了Docker动态给容器Container暴露端口操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker compose镜像如何更新

    docker compose镜像如何更新

    这篇文章主要介绍了docker compose镜像更新方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • docker logs命令的使用及说明

    docker logs命令的使用及说明

    这篇文章主要介绍了docker logs命令的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker prune命令定时清理不常用数据的操作方法

    docker prune命令定时清理不常用数据的操作方法

    使用docker引擎服务时间久了,会发现磁盘空间越来越大,现在要删除关于docker相关不用的数据来释放磁盘空间,这篇文章主要介绍了docker prune命令 可定时清理不常用数据,需要的朋友可以参考下
    2022-10-10
  • 教你docker方式部署nacos

    教你docker方式部署nacos

    Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理,下面通过本文给大家讲解docker方式部署nacos的过程,感兴趣的朋友一起看看吧
    2022-05-05
  • 如何解决docker logs无法实时输出脚本打印的内容

    如何解决docker logs无法实时输出脚本打印的内容

    这篇文章主要介绍了如何解决docker logs无法实时输出脚本打印的内容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker部署可视化管理面板Dpanel

    Docker部署可视化管理面板Dpanel

    本文主要介绍了Docker部署可视化管理面板Dpanel,通过可视化界面简化Docker管理,提升运维效率,下面就来介绍一下,感兴趣的可以了解一下
    2025-07-07
  • docker-compose网络设置之networks的使用

    docker-compose网络设置之networks的使用

    本文详细解释了在使用 Docker Compose时如何配置网络,包括创建、使用和问题解决等方面,介绍了如何通过docker-compose.yml文件快速编排和部署应用服务,同时解决网络隔离问题,感兴趣的可以了解一下
    2024-10-10
  • Docker运行模式之-d和-it的区别与选择详细对比

    Docker运行模式之-d和-it的区别与选择详细对比

    这篇文章主要介绍了Docker运行模式之-d和-it的区别与选择详细对比的相关资料,Docker中-d用于后台运行服务,不阻塞终端;-it提供交互终端,支持用户操作,需要的朋友可以参考下
    2025-05-05
  • 解决docker容器(java程序)内存过大的问题

    解决docker容器(java程序)内存过大的问题

    本文主要介绍了解决docker容器(java程序)内存占用过大的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07

最新评论