Registry项目Harbor

上面我们简单的介绍了Docker Registry的使用,但是真正生产环境,我们无法有效的管理Docker Regisry。官方提供了收费版的Registry,社区有开源版本的Harbor。

Harbor简介

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。

部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

Harbor部署

Harbor为运维提供了多种部署方法,你可以直接clone最新代码,也可以支持offline的部署方法,直接下载官方构建好的镜像来进行使用。可以在github的releases查看最新版本,本文是1.7.1版本。https://github.com/vmware/harbor/releases

建议下载offline的压缩包,里面包含了harbor启动所用的所有docker镜像,可以快速的部署harbor。

# cd /usr/local/src
# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.1.tgz
# tar zxf harbor-offline-installer-v1.7.1.tgz

Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署,你可以查看docker-compose.yml文件。

Harbor配置

为Harbor配置HTTP访问

[root@linux-node1 ~]# cd harbor
[root@linux-node1 harbor]# vim harbor.cfg
hostname = 192.168.56.11

配置Docker信任仓库

如果使用http的方式配置harbor需要为所有Docker添加信任配置。

[root@linux-node1 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://tdimi5q1.mirror.aliyuncs.com"],
"insecure-registries" : ["http://192.168.56.11"]
}
[root@linux-node1 ~]# systemctl restart docker

为Harbor配置https访问

默认情况下Harbor是使用http进行访问,官方提供了自签名证书的方法,不过生产环境还是建议购买SSL证书。

1.申请证书

如果你没有SSL证书,那么也不要使用网上复杂的自签名证书的步骤了。目前阿里云提供Symantec 免费型DV SSL证书。申请成功后,下载Nginx版本的证书文件。

2.Harbor配置

[root@docker-node1 harbor]# cd /usr/local/src/harbor/
[root@docker-node1 harbor]# vim harbor.cfg
hostname = reg.unixhot.com
ui_url_protocol = https
ssl_cert = /usr/local/src/harbor/1_registry.linuxhot.com_bundle.crt
ssl_cert_key = /usr/local/src/harbor/2_registry.linuxhot.com.key

请将证书放置在宿主机上,并配置正确的证书路径。

Docker Compose安装

[root@linux-node1 ~]#yum install -y docker-compose
[root@linux-node1 ~]# docker-compose --version
docker-compose version 1.8.0, build 94f7016

安装Harbor

[root@k8s-harbor-1 ~]# cd /usr/local/src/harbor/
[root@k8s-harbor-1 harbor]# ./install.sh

查看Harbor状态

[root@k8s-harbor-1 harbor]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------

harbor-adminserver /harbor/start.sh Up
harbor-core /harbor/start.sh Up
harbor-db /entrypoint.sh postgres Up 5432/tcp
harbor-jobservice /harbor/start.sh Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up 80/tcp
nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp,
0.0.0.0:80->80/tcp
redis docker-entrypoint.sh redis ... Up 6379/tcp
registry /entrypoint.sh /etc/regist ... Up 5000/tcp
registryctl /harbor/start.sh Up

使用Harbor管理Registry

现在你就可以访问你的域名http://reg.linuxhot.com进行登录。默认用户admin,密码Harbor12345。

登录后的第一件事情永远都是修改默认密码。然后你就可以在项目管理中,新建和管理项目了。不过默认情况下创建的项目library是公开的,如果你要使用这个项目,而且域名放在公网上,请取消公开。

[root@linux-node1 ~]# docker login reg.linuxhot.com
Username: admin
Password:
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

提交镜像到Registry

# docker tag centos:latest reg.linuxhot.com/system/centos:latest
# docker push reg.linuxhot.com/system/centos:latest
Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-08-11 17:29:04

results matching ""

    No results matching ""