docker基础 私有仓库repository搭建(2) Harbor

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       
 

我们在上一篇文章中介绍了使用registry来创建企业私有仓库用于存储镜像,但是由于只有CUI的操作,一般拿来还要加工处理一下。
  在以前曾经介绍过的Harbor其实也是基于Registry的这样一个企业级Registry的创建,在本文中将会介绍一下如何使用Harbor作简单的镜像推送等。

这里写图片描述

 

在写上一篇的文章时候,Harbor还是0.3.0版本,现在已经是0.4.1了。而且在dockerhub上也已经有了自己的镜像,安装也分为了online和offline两种tgz文件包了,现在已经是较为方便了,后期继续集成,是不是留下一个docker-compose.yml和可以配置的参数公开出来,这样的话安装就没有任何成本了,不过目前这个安装的成本也可以忽略不计,在非关键业务上作的改善都不是真正的改善,除非已经到了人神共愤的地步,否则可以无视。

事前准备

 

安装了docker1.12.2,具体安装方法参看如下

   
安装方法http://blog.csdn.net/liumiaocn/article/details/52130852
[root@liumiaocn ~]# docker versionClient: Version:      1.12.2 API version1.24 Go version:   go1.6.3 Git commit:   bb80604 Built: OS/Arch:      linux/amd64 Experimental: trueServer: Version:      1.12.2 API version1.24 Go version:   go1.6.3 Git commit:   bb80604 Built: OS/Arch:      linux/amd64 Experimental: true[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

设定insecure-registry

 

事前确认

[root@liumiaocn ~]# docker info |tail -n3 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.Experimental: trueInsecure Registries127.0.0.0/8[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
 

修改docker.service(/lib/systemd/system/docker.service)
  修改前

ExecStart=/usr/bin/dockerd
  
  
  • 1
 

修改后

ExecStart=/usr/bin/dockerd --insecure-registry 192.168.32.131
  
  
  • 1
 

daemon-reload & restart docker

[root@liumiaocn harbor]# systemctl daemon-reload[root@liumiaocn harbor]# systemctl restart docker[root@liumiaocn harbor]#
  
  
  • 1
  • 2
  • 3
 

再确认:192.168.32.131已被加入到Insecure Registries中

[root@liumiaocn harbor]# docker info |tail -n3 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.Insecure Registries192.168.32.131 127.0.0.0/8[root@liumiaocn harbor]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

组件

 

Harbor 0.4.1用到的组件如下:

                   
组件版本
Photon OS1.0
Docker Registry2.5
MySQL5.6
NGINX1.9

下载online安装包

命令:wget https://github.com/vmware/harbor/releases/download/0.4.1/harbor-online-installer-0.4.1.tgz
  
  
  • 1

解压 & 修改Harbor.cfg文件

 

解压

命令:[root@liumiaocn ~]# tar xvpf harbor-online-installer-0.4.1.tgz
  
  
  • 1
 

修改Harbor.cfg文件(只修正hostname就能正常动作,其余请自行探索)

[root@liumiaocn ~]# cd harbor[root@liumiaocn harbor]# cp harbor.cfg harbor.cfg.bak[root@liumiaocn harbor]# vi harbor.cfg[root@liumiaocn harbor]# diff harbor.cfg harbor.cfg.bak5c5< hostname = 192.168.32.131---> hostname = reg.mydomain.com[root@liumiaocn harbor]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

执行./prepare脚本

[root@liumiaocn harbor]# ./prepareGenerated configuration file: ./config/ui/envGenerated configuration file: ./config/ui/app.confGenerated configuration file: ./config/registry/config.ymlGenerated configuration file: ./config/db/envGenerated configuration file: ./config/jobservice/envClearing the configuration file: ./config/ui/private_key.pemClearing the configuration file: ./config/registry/root.crtGenerated configuration file: ./config/ui/private_key.pemGenerated configuration file: ./config/registry/root.crtThe configuration files are ready, please use docker-compose to start the service.[root@liumiaocn harbor]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

启动

 

在harbor的目录下,有docker-compose.yml文件,使用docker-compose 命令启动Harbor

命令: docker-compose up
  
  
  • 1
 

第一次启动,本地没有相关的镜像的话,会自动直接从dockerhub上下载,所以online的安装包是需要联网的状态下使用的。
  offline的安装包,展开后你会发现另外一个tgz文件,其实就是那些镜像所对应的文件,load进来就可以了。执行完毕之后,令起一个终端确认一下,可以看到下面5个镜像都被pull下来了。

[root@liumiaocn harbor]# docker images |egrep 'harbor|nginx|registry'vmware/harbor-db           0.4.1               bb0d8181f36f        2 weeks ago         324.2 MBvmware/harbor-jobservice   0.4.1               5413608c9b6a        2 weeks ago         161.7 MBvmware/harbor-ui           0.4.1               7db965490f9b        2 weeks ago         224.4 MBvmware/harbor-log          0.4.1               3ae2612dfe5e        2 weeks ago         185.3 MBregistry                   2.5.0               c6c14b3960bd        11 weeks ago        33.28 MBnginx                      1.9.0               7e156d496c9f        17 months ago       132.8 MB[root@liumiaocn harbor]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
 

缺省的Port被设定在80端口,需要改端口的自行修改docker-compose.yml

登陆harbor

 

输入前面设定的IP即可打开Harbor登陆界面,不能者请检查网络设定以及iptables等。

这里写图片描述

 

缺省的用户名和密码

       
缺省用户名密码
adminHarbor12345
 

也可以自行再注册一个用户。

管理主界面

这里写图片描述

docker login

 

login的时候指定在docker.service中设定的IP。

[root@liumiaocn ~]# docker login 192.168.32.131Username: adminPassword:Login Succeeded[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

pull busybox

 

在本地pull一个busybox用于之后向Harbor进行push

[root@liumiaocn ~]# docker pull busyboxUsing default tag: latestlatest: Pulling from library/busybox56bec22e3559: Pull completeDigest: sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912Status: Downloaded newer image for busybox:latest[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

确认Harbor的library项目

 

Harbor缺省会创建一个library项目,可以看出当前的镜像数目是0

这里写图片描述

docker tag

[root@liumiaocn ~]# docker tag busybox:latest 192.168.32.131/library/busybox:latest[root@liumiaocn ~]# docker imagesREPOSITORY                       TAG                 IMAGE ID            CREATED             SIZEbusybox                          latest              e02e811dd08f        11 days ago         1.093 MB192.168.32.131/library/busybox   latest              e02e811dd08f        11 days ago         1.093 MBvmware/harbor-db                 0.4.1               bb0d8181f36f        2 weeks ago         324.2 MBvmware/harbor-jobservice         0.4.1               5413608c9b6a        2 weeks ago         161.7 MBvmware/harbor-ui                 0.4.1               7db965490f9b        2 weeks ago         224.4 MBvmware/harbor-log                0.4.1               3ae2612dfe5e        2 weeks ago         185.3 MBregistry                         2.5.0               c6c14b3960bd        11 weeks ago        33.28 MBnginx                            1.9.0               7e156d496c9f        17 months ago       132.8 MB[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

docker push

[root@liumiaocn ~]# docker push 192.168.32.131/library/busybox:latestThe push refers to a repository [192.168.32.131/library/busybox]e88b3f82283b: Pushedlatest: digest: sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912 size: 527[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

在Harbor上确认结果

 

library项目中的镜像数目已经从0变成了1

这里写图片描述

 

library项目的镜像仓库详细信息

这里写图片描述

docker pull

 

事前准备,清除本地的busybox的所有信息

[root@liumiaocn ~]# docker imagesREPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE192.168.32.131/library/busybox   latest              e02e811dd08f        11 days ago         1.093 MBbusybox                          latest              e02e811dd08f        11 days ago         1.093 MBvmware/harbor-db                 0.4.1               bb0d8181f36f        2 weeks ago         324.2 MBvmware/harbor-jobservice         0.4.1               5413608c9b6a        2 weeks ago         161.7 MBvmware/harbor-ui                 0.4.1               7db965490f9b        2 weeks ago         224.4 MBvmware/harbor-log                0.4.1               3ae2612dfe5e        2 weeks ago         185.3 MBregistry                         2.5.0               c6c14b3960bd        11 weeks ago        33.28 MBnginx                            1.9.0               7e156d496c9f        17 months ago       132.8 MB[root@liumiaocn ~]# docker rmi 192.168.32.131/library/busybox busyboxUntagged: 192.168.32.131/library/busybox:latestUntagged: 192.168.32.131/library/busybox@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912Untagged: busybox:latestUntagged: busybox@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912Deleted: sha256:e02e811dd08fd49e7f6032625495118e63f597eb150403d02e3238af1df240baDeleted: sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9[root@liumiaocn ~]# docker imagesREPOSITORY                 TAG                 IMAGE ID            CREATED             SIZEvmware/harbor-db           0.4.1               bb0d8181f36f        2 weeks ago         324.2 MBvmware/harbor-jobservice   0.4.1               5413608c9b6a        2 weeks ago         161.7 MBvmware/harbor-ui           0.4.1               7db965490f9b        2 weeks ago         224.4 MBvmware/harbor-log          0.4.1               3ae2612dfe5e        2 weeks ago         185.3 MBregistry                   2.5.0               c6c14b3960bd        11 weeks ago        33.28 MBnginx                      1.9.0               7e156d496c9f        17 months ago       132.8 MB[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
 

docker pull
  从Harbor的library项目中pull一个busybox的镜像

[root@liumiaocn ~]# docker pull 192.168.32.131/library/busybox:latestlatest: Pulling from library/busybox56bec22e3559: Pull completeDigest: sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912Status: Downloaded newer image for 192.168.32.131/library/busybox:latest[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
 

成功pull到本地

[root@liumiaocn ~]# docker imagesREPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE192.168.32.131/library/busybox   latest              e02e811dd08f        11 days ago         1.093 MBvmware/harbor-db                 0.4.1               bb0d8181f36f        2 weeks ago         324.2 MBvmware/harbor-jobservice         0.4.1               5413608c9b6a        2 weeks ago         161.7 MBvmware/harbor-ui                 0.4.1               7db965490f9b        2 weeks ago         224.4 MBvmware/harbor-log                0.4.1               3ae2612dfe5e        2 weeks ago         185.3 MBregistry                         2.5.0               c6c14b3960bd        11 weeks ago        33.28 MBnginx                            1.9.0               7e156d496c9f        17 months ago       132.8 MB[root@liumiaocn ~]#
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

总结

 

本文是通过设定insecure-registry的方式,快速实现了在Harbor上管理镜像,可pull可push,但是Harbor如果只能做到这些,也不会有那么多追随者,比如多仓库的管理,策略的设定等等均可简单实现,在仓库管理的最佳实践方面还有很多东西可以自行探索。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以通过以下步骤来搭建Harbor私有仓库: 1. 安装DockerDocker-compose 2. 下载Harbor镜像并启动容器 3. 访问Harbor Web界面并进行初始化设置 4. 创建用户帐户并登录 5. 推送和下载镜像 请注意,Harbor的安装和配置可能需要一些技术知识,并且应根据您的系统环境进行适当的调整。有关更详细的信息,请参阅Harbor官方文档。 ### 回答2: Docker是一项非常受欢迎的容器化技术,它使得应用开发和部署非常方便,而Harbor是一款优秀的开源Docker私有仓库软件,它提供了安全、可靠、灵活的私有容器仓库解决方案,是非常适合企业内部使用的仓库软件。 搭建Harbor私有仓库的过程可以分为以下几个步骤: 1. 安装Docker:在安装Harbor之前,你需要先安装好Docker,确保Docker已经正确安装、运行,并且网络已经配置好。 2. 下载并解压Harbor安装包:从Harbor的官方网站(https://goharbor.io/)下载Harbor的安装包,然后解压到指定目录中。 3. 配置Harbor:在解压后的目录中,找到harbor.cfg文件,按照需求修改该文件中的配置选项,例如端口、数据存储目录、认证方式、管理员密码等。 4. 启动Harbor:运行docker-compose up -d命令即可启动Harbor私有仓库,启动后可以使用docker ps命令查看状态。 5. 配置Docker客户端:在启动Harbor后,你需要配置Docker客户端的认证信息,才能访问Harbor仓库。在Docker客户端中使用docker login命令,输入用户名、密码和仓库地址即可。 6. 使用Harbor:在配置完成后,你可以使用docker命令或者Harbor的Web UI界面来管理和使用你的私有仓库了。 总之,在使用Harbor搭建私有仓库时,需要先安装好Docker,并在运行Harbor之前进行配置,配置好认证信息,才能正常访问私有仓库Harbor还提供了丰富的权限管理、镜像管理、日志管理等功能,非常适合用于企业内部应用的私有容器仓库解决方案。 ### 回答3: Docker是一种轻便的容器技术,Harbor是一种用于Docker注册表和管理系统的私有仓库Harbor私有仓库可以极大地方便企业级应用程序的构建、部署和管理,特别适用于A DevOps和微服务架构。要搭建Harbor私有仓库,步骤如下: 第一步,安装DockerDocker Compose。在安装完Docker后,可以使用以下命令来安装Docker Compose: curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 第二步,下载并安装Harbor私有仓库。从Harbor的官方网站上下载和安装最新版本的Harbor软件包: wget https://api.github.com/repos/goharbor/harbor/releases/latest -O harbor.json RELEASE_VERSION=$(cat harbor.json|jq ".name"|sed 's/"//g') echo "Harbor Version: ${RELEASE_VERSION}" wget https://github.com/goharbor/harbor/releases/download/${RELEASE_VERSION}/harbor-online-installer-${RELEASE_VERSION}.tgz tar zxvf harbor-online-installer-${RELEASE_VERSION}.tgz -C /opt 第三步,创建并编辑Harbor配置文件。在Harbor的安装目录下,创建一个名为harbor.cfg的配置文件: cd /opt/harbor cp harbor.cfg.tmpl harbor.cfg vi harbor.cfg 在配置文件中,指定Harbor的主机名、端口和数据存储路径等细节。你可以调整这些设置来适应你的特定需求。 第四步,启动Harbor容器。使用Docker Compose和Harbor配置文件来创建Harbor的运行环境: docker-compose up -d 第五步,使用浏览器访问Harbor私有仓库。在浏览器中访问http://localhost:8888,你会看到Harbor的登录页面。输入管理员账户和密码,即可进入Harbor管理界面。 第六步,使用Harbor私有仓库。使用Docker Registry API或Docker客户端命令行工具,与你的Harbor私有仓库进行交互。将部署在Harbor私有仓库中的镜像下载并使用在你的应用程序中。 总之,搭建Harbor私有仓库非常不错,它提供了一个安全、集中和可扩展的Docker仓库,并支持自动构建和镜像扫描等高级功能。随着DevOps和微服务的兴起,Harbor私有仓库将成为企业应用的关键组成部分,也值得我们深入探索和研究。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值