用Docker镜像仓库Harbor部署私有Mirror服务


本篇内容介绍了“用Docker镜像仓库Harbor部署私有Mirror服务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Harbor是VMware公司最近开源的企业级Docker Registry项目(https://github.com/vmware/harbor) 。其目标是帮助用户迅速搭建一个企业级的Docker registry服务。它提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。
Harbor使用Docker-compose部署,后续所有的配置以及部署均在

$HARBOR_HOME/Deploy/

目录下完成,因此若无特别说明,工作目录都在该目录下。

首先需要进行简单的配置,配置文件为harbor.cfg,配置项如下:
hostname:hostname为外部可访问的地址,即bind addr,通常设置为本地公有IP,若内部使用DNS,可设置为主机名。
auth_mode:Harbor支持两种认证方式,默认为本地存储,即账号信息存储在mysql下,本文先使用本地存储方式,另外一种认证方式LDAP将在后续章节单独介绍。

设置完毕后,配置文件为:
运行./prepare脚本更新配置。完成配置后,就可以使用docker-compose快速部署Harbor:
docker-compose up -d

安装完成后,访问Web UI,地址:http://bind_addr,即配置的hostname地址,端口为80。如图:
接下来我们上传一个镜像,以ubuntu镜开发云主机域名像为例,首先从docker hub拉取ubuntu镜像:

docker pull ubuntu:14.04

然后为该镜像打上新的标签标签格式为:Harbor地址/项目名/镜像名称:镜像标签,如:
docker tag ubuntu:14.04
42.62.x.x/library/ubuntu:14.04

push我们的镜像到Harbor仓库中:
docker push ubuntu:14.04
42.62.x.x/library/ubuntu:14.04
假设本地不存在python镜像:
我们第一次pull python后,Harbor发现不存在该镜像,于是自己作为代理往Docker Hub里拉取,拉取后保存到本地,可以通过Web UI查看。客户端再次拉取python镜像时,由于Harbor已经存在该镜像,因此不需要再往Docker Hub拉取,速度大幅度提高!
Harbor支持两种认证方式,默认为本地存储,即账号信息存储在mysql下,上文已经具体介绍。接下来介绍另外一种认证方式LDAP,只需要修改配置文件即可。需要提供ldap url以及ldap basedn参数,并且设置auth_mode为ldap_auth。

快速部署LDAP服务
为了测试方便,我们使用Docker启动一个LDAP服务器,启动脚本如下:NAME=ldap_server
docker rm -f $NAME 2>/dev/null
docker run –env LDAP_ORGANISATION=”Unitedstack Inc.”>
–env LDAP_DOMAIN=”ustack.com”
–env LDAP_ADMIN_PASSWORD=”admin_password”
-vpwd/containers/openldap/data:/var/lib/ldap
-vpwd/containers/openldap/slapd.d:/etc/ldap/slapd.d
–detach –name $NAME osixia/openldap:1.1.2

创建新用户,首先需要定义ldif文件,new_user.ldif:
dn: uid=test,dc=ustack,dc=com
uid: test
cn: test
sn: 3
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
loginShell: /bin/bash
homeDirectory: /home/test
uidNumber: 1001
gidNumber: 1001
userPassword: 1q2w3e4r
mail:test@example.com
gecos: test

通过以下脚本创建新用户,其中ldap_server为LDAP服务容器名称。
docker cp new_user.ldif ldap_server:/
docker exec ldap_server ldapadd -x
-D “cn=admin,dc=ustack,dc=com”
-w admin_password
-f /new_user.ldif -ZZ

查看用户是否创建成功:
docker exec ldap_server ldapsearch -x -h localhost
-b dc=ustack,dc=com -D “cn=admin,dc=ustack,dc=com”
-w admin_password
检查test用户是否存在,若存在,则说明创建成功,否则需要使用docker logs查看日志。

配置Harbor使用LDAP认证
修改harbor.cfg文件关于LDAP配置项,如下:
auth_mode = ldap_auth
ldap_url = ldap://42.62.x.x
ldap_basedn = uid=%s,dc=ustack,dc=com

然后重新部署Harbor:
./prepare
docker-compose stop
docker-compose rm -f
docker-compose up -d

测试是否能够使用test用户登录:
docker login -u test -p 1q2w3e4r
-etest@example.com42.62.x.x
“用Docker镜像仓库Harbor部署私有Mirror服务”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注开发云网站,小编将为大家输出更多高质量的实用文章!

相关推荐: msyql服务器

永久更改主机名[root@Centos3 mysql-5.7.26]# hostnamectl set-hostname mysql-srv3yum -y install lrzszrzWeb架构之mysql服务器1、 Mysql概述:1.1、 Mysql概述…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/20 19:57
下一篇 05/20 19:57

相关推荐