• Docker: vmware企业级docker镜像私服--Harbor的搭建


    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

  • 相关阅读:
    JavaScript操作DOM对象
    QTP(13)
    QTP(12)
    QTP(11)
    QTP(10)
    QTP(9)
    QTP(8)
    QTP(7)
    QTP(6)
    QTP(5)
  • 原文地址:https://www.cnblogs.com/WayneZeng/p/9290733.html
Copyright © 2020-2023  润新知