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. 12.DataGrid的columns的特性

  2. day04_雷神_函数

    #day04 1.函数 1.1函数传参 函数定义的时候是形参:函数执行的时候是实参 实参: 位置参数.关键字参数.混合参数 位置参数:位置一一对应 关键字参数: 可以位置不对应 混合参数:关键字参数要 ...

  3. AlexNet详解3

    Reference. Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Ne ...

  4. C#常用修饰符

    访问修饰符 访问修饰符是一些关键字,用于指定声明的成员或类型的可访问性,C#有4个访问修饰符:public.private.protected.internal,使用这些访问修饰符可以指定以下5个访问 ...

  5. 3.怎样将ASP.NET MVC应用程序发布到IIS

    这一篇,教大家怎么将ASP.NET MVC应用程序发布到本地或者IIS中.打开上一篇创建的ASP.NET MVC 5.0应用程序.[PS:上一篇--->2.第一个ASP.NET MVC 5.0应 ...

  6. 关于.net core使用nginx做反向代理获取客户端ip的问题

    1.正常情况下.net core获取客户端ip是比较简单的 /// <summary> /// 获取客户Ip /// </summary> /// <param name ...

  7. Spring Framework 4.3.22.RELEASE Reference文档目录

    <Spring Framework Reference Documentation 4.3.22.RELEASE> https://docs.spring.io/spring/docs/4 ...

  8. 微服务 - Eureka注册中心

    我们来解决微服务的第一问题,服务的管理. 服务中心对外提供服务,需要对外暴露自己的地址.而consumer(调用者)需要记录服务提供者的地址.将来地址出现变更,还需要及时更新.这在服务较少的时候并不觉 ...

  9. 《Python黑帽子:黑客与渗透测试编程之道》 自动化攻击取证

    工具安装: 下载源码:https://code.google.com/archive/p/volatility/downloads 工具配置: 获取内存镜像:https://www.downloadc ...

  10. 版本控制工具git

    公司要求用git,感觉不如svn好使,还是命令行的,暂时记录一下. 服务器是在linux上可以直接安装.我是虚拟机centos6.9版本.yum install -y git 查看版本号是git -- ...