1、下载harbor,地址https://github.com/vmware/harbor
2、进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息
     2.1、hostname =10.10.10.10 (这个是harbor所在服务器的ip,不能写127.0.0.1)
     2.2、修改邮箱相关信息

3、执行./prepare命令


4.1

Ubuntu:   (sudo vi /etc/default/docker)

DOCKER_OPTS="--insecure-registry 10.10.10.10”

4.2 Centos:

修改/usr/lib/systemd/system/docker.service文件

修改一行  ExecStart=/usr/bin/docker daemon -H fd:// --registry-mirror=https://docker.mirrors.ustc.edu.cn --insecure-registry 10.10.10.10”

为什么要修改这个配置文件呢?--insecure-registry代表本地镜像库,修改了以上配置文件后需要重启docker服务,此时docker login时,将连接指定的本地镜像库。

如果不修改这个配置文件,则登录镜像私服时(docker login 10.10.10.10”)会抛出如下错误

Error response from daemon: Get https://10.10.10.10”/v1/users/: dial tcp 10.10.10.10”:443: getsockopt: connection refused

5、重启docker服务

service docker restart


7、build并启动
docker-compose up -d
8、从docker hub上下载hello-world镜像
docker run hello-world
9、给镜像打标签,以便上传到私服,其中library是harbor默认提供的项目
docker tag hello-world 10.10.20.202/library/hello-world
10、上传镜像
登录镜像私服,执行以下指令,再输入用户名和密码
docker login 10.10.20.202
上传镜像
docker push 10.10.20.202/library/hello-world
11、在浏览器上访问10.10.20.202,用户名:admin,密码:Harbor12345登录完成后,点击library这个项目,即可看到上传的hello-world

以下附带harbor的启动、停止命令

【Build and start Harbor】

$ sudo docker-compose up -d
Creating harbor_log_1
Creating harbor_mysql_1
Creating harbor_registry_1
Creating harbor_ui_1
Creating harbor_proxy_1

【Stop Harbor】

$ sudo docker-compose stop
Stopping harbor_proxy_1 ... done
Stopping harbor_ui_1 ... done
Stopping harbor_registry_1 ... done
Stopping harbor_mysql_1 ... done
Stopping harbor_log_1 ... done
Restart Harbor after stopping

【Start Harbor】

$ sudo docker-compose start
Starting harbor_log_1
Starting harbor_mysql_1
Starting harbor_registry_1
Starting harbor_ui_1
Starting harbor_proxy_1
Remove Harbor's containers while keeping the image data and Harbor's database files on the file system:

【删除Harbor】

$ sudo docker-compose rm
Going to remove harbor_proxy_1, harbor_ui_1, harbor_registry_1, harbor_mysql_1, harbor_log_1
Are you sure? [yN] y
Removing harbor_proxy_1 ... done
Removing harbor_ui_1 ... done
Removing harbor_registry_1 ... done
Removing harbor_mysql_1 ... done
Remove Harbor's database and image data (for a clean re-installation):

$ rm -rf /data/database
$ rm -rf /data/registry


对接LDAP认证

Harbor支持两种认证方式,默认为本地存储,即账号信息存储在mysql下,上文已经具体介绍。接下来介绍另外一 种认证方式LDAP,只需要修改配置文件即可。需要提供ldap url以及ldap basedn参数,并且设置auth_mode为ldap_auth。

快速部署LDAP服务

为了测试方便,我们使用Docker启动一个LDAP服务器,启动脚本如下:

!/bin/bash

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" \

-v pwd/containers/openldap/data:/var/lib/ldap \

-v pwd/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://10.10.20.202

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 \

-e test@example.com 10.10.20.202

参考资料

http://dockone.io/article/1252

Harbor项目:https://github.com/vmware/harbor

官方配置mirror registry文档:https://github.com/docker/dist ... or.md

Daocloud关于mirror的博客:http://blog.daocloud.io/daocloud-mirror-free/

openLDAP部署:https://github.com/osixia/docker-openldap

Docker: vmware企业级docker镜像私服--Harbor的搭建的更多相关文章

  1. docker 系列 - 企业级私有镜像仓库Harbor部署(转载)

     本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f  , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...

  2. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息      ...

  3. 企业级Docker容器镜像仓库Harbor的搭建

    Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...

  4. 【Docker】企业级镜像仓库harbor的搭建(http/https)及使用

    一:用途 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 二:安装docker-ce 环境:阿里云轻量应用服务器CentOS 7.3 这里通过yum Docker源仓 ...

  5. Docker 企业级镜像仓库 Harbor 的搭建与维护

    目录 一.什么是 Harbor 二.Harbor 安装 2.1.Harbor 安装环境 2.2.Harbor安装 2.3 配置HTTPS 三.Harbor 的使用 3.1.登录Harbor并使用 3. ...

  6. Docker镜像仓库Harbor之搭建及配置

    目录 Harbor介绍环境.软件准备Harbor服务搭建Harbor跨数据复制配置FAQ1.Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的 ...

  7. 容器云平台No.5~企业级私有镜像仓库Harbor V2.02

    镜像仓库 仓库,顾名思义,就是存放东西的地方,Docker仓库,理所当然,就是存放docker镜像的地方了. Docker仓库分公有仓库和私有仓库.共有仓库有hub.docker.com.gcr.io ...

  8. Harbor - 私有企业级 Docker 镜像仓库

    GitHub 地址 容器镜像服务 Docker镜像的基本使用 Docker:企业级私有镜像仓库Harbor使用 Harbor 是基于 Docker Registry 的企业级镜像仓库,安装后的使用方法 ...

  9. Docker镜像仓库Harbor之Swagger REST API整合配置

    转载自:https://cloud.tencent.com/developer/article/1010618 1.Swagger 介绍 Swagger 是一个规范和完整的框架,用于生成.描述.调用和 ...

随机推荐

  1. [zjoi2010]cheese

    题目: 贪吃的老鼠(cheese.c/cpp/pas/in/out) 时限:每个测试点10秒 [问题描述] 奶酪店里最近出现了m只老鼠!它们的目标就是把生产出来的所有奶酪都吃掉.奶酪店中一天会生产n块 ...

  2. android 三种定时器的写法

    //两秒后执行new Handler().postDelayed(new Runnable() { @Override public void run() { --todo }}, 2000); -- ...

  3. AngularJS 模块及provide

    一.模块 模块是一些功能的集合,如控制器.服务.过滤器.指令等子元素组成的整体. 1.注册和使用 模块相当于是一个注册表,保存着名字和编程元素的对照表,可存入也可取出. angular.module( ...

  4. poj 2155 区间更新 单点查询

    Matrix Time Limit: 3000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java class ...

  5. sqlserver 自动创建作业执行备份数据库

    declare @name varchar(250)set @name='I:\dydb_n\dydb_n'+convert(varchar(50),getdate(),112)+ left(righ ...

  6. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

  7. 搭建ELK集群

    环境准备 基础环境介绍 操作系统 部署应用 应用版本号 IP地址 主机名 CentOS 7.4 Elasticsearch/Logstash 6.4.3 192.168.1.1 elk1 CentOS ...

  8. [NewCode 6] 重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  9. SignalR简介

    什么是SignalR? ASP.NET SignalR是ASP.NET开发人员的库,它简化了向应用程序添加实时Web功能的过程.实时Web功能是指服务器代码在连接的客户端可用时立即将内容推送到连接的客 ...

  10. solr初识

    参考资料http://blog.csdn.net/l1028386804/article/details/70199983