harbor0.45配置

本机环境

centos7.2   

docker 1.12.3

docker-compose  1.8.1

一使用http认证方式

1.编辑/lib/systemd/system/docker.service ,在ExecStart处增加 --insecure-registry=192.168.125.154,保存重启docker deamon

2.修改harbor.cfg中的ui_url_protocol = http

3.编译安装harbor

   ./prepare  && ./install.sh

4.推送镜像到私服中

   镜像改名为:192.168.125.154/library/nginx:1.9

   登录docker  longin 192.168.125.154

   docker push 192.168.125.154/library/nginx:1.9

注意:如果--insecure-registry配置带5000端口的话,docker longin 和镜像名都要带上5000端口才可以。

由于我们配置认证服务使用的是http,Docker认为是不安全的,另外要使用我们部署的镜像仓库,还需要配置本地的docker配置文件呢,如上。


二使用https方式

   1.自签发证书获取证书

        openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

   2.拷贝ca.crt和ca.key到/root/cert下(经验证在其他机器上只需要将ca.cert的内容追加到其系统证书下即可。)

      并且需要在docker client端设置如下:(如果是企业级证书,下面的操作取决于证书的CA是不是在操作系统的truststore里)

            .cat ca.crt >> /etc/pki/tls/certs/ca-bundle.crt (追加到系统证书,针对centos)

            .在/etc/docker/certs.d下创建主机名目录,并且将ca.crt拷贝进来。

      如果要通过域名来访问的话,需要配置下common/config/nginx/nginx.conf里的 server_name

    3.配置和安装    

  cp 192.168.125.154.crt /root/cert/
  cp 192.168.125.154.key /root/cert/
  编辑harbor.cfg
  #set hostname
  hostname = reg.yourdomain.com
  #set ui_url_protocol
  ui_url_protocol = https
  ......
  #The path of cert and key files for nginx, they are applied only the protocol is set to https 
  ssl_cert = /root/cert/yourdomain.com.crt
  ssl_cert_key = /root/cert/yourdomain.com.key
./prepare &&./install.sh


      

         


三.配置harbor作为mirror registy

    Mirror是Docker Registry的一种特殊类型,它起到了类似代理服务器的缓存角色,在用户和Docker Hub之间做Image的缓存

   其基本工作原理是,当用户pull一个镜像时,若镜像在mirror 服务器存在,则直接从mirror服务器拉取,否则若不存在该镜像,则由mirror server自动代理往dockerhub(可配置)中拉取镜像,并缓存到mirror服务器中,当客户再次拉取这个镜像时,直接从mirror server中拉取,不需要再次从dockerhub中拉取。

    具体配置:

     在运行./prepare之前修改config/registry/config.yml文件,追加一下配置:

      proxy:

      remoteurl: https://registry-1.docker.io

      username: [username]

      password: [password]

      然后重新启动harbor服务。

     #注意,如果需要访问私有仓库的话则要填写dockerhub的用户名和密码

                 另外不要执行./prepare,否则会覆盖修改的配置。

          docker-compose stop  &&docker-compose rm -f && docker-compose up -d

      除了设置harbor(registy),还需要配置本地docker配置文件,增加 --registry-mirror=http://ip


四.配置LDAP认证

    harbor支持两种认证方式,默认为本地存储,即账号信息存储在mysql下,另外一种认证方式就是LDAP,只需要修改配置文件即可,需要提供LDAP URL以及ldap basedn参数,并设置auth_mode为ldap_auth。

   具体实现:

   修改harbor.cfg文件关于ldap配置项,如下:

        auth_mode = ldap_auth

        ldap_url = ldap://10.254.100.2

       ldap_basedn = uid=%s,dc=ustack,dc=com

   然后重新编译部署harbor:

      ./prepare && ./install.sh


五.删除镜像

    需要三部:

     1.从UI界面删除

     2.  。docker-compose stop

           。docker run -it --name gc --rm --volumes-from registry registry:2.5.0 garbage-collect /etc/registry/config.yml

          如果是想预览下删除的镜像(不删除)可加--dry-run参数

               docker run -it --name gc --rm --volumes-from registry registry:2.5.0 garbage-collect --dry-run /etc/registry/config.yml

     3.。docker-compose start


六. 为Harbor配置后端存储

     默认情况下,Docker镜像存储在本地文件系统中。在生产环境钟可能会考虑使用其他的存储,如azure,S3,oss,OpenStack Swift,Ceph,etc等,那么,就需要修改common/templates/registry/config.yml文件:

    

storage:
  swift:
    username: admin
    password: ADMIN_PASS
    authurl: http://keystone_addr:35357/v3
    tenant: admin
    domain: default
    region: regionOne
    container: docker_images

     其中username,password,authurl和container是必须的, comtainer表示swift中的容器。

运行./prepare脚本更新配置,完成配置后,就可以使用docker-compose快速部署Harbor了。

# docker-compose up -d

最后提示如下信息,便表示安装成功了。

验证:

   i.安装cli客户端
$ pip install python-swiftclient==2.5.0
  ii.设置环境变量,供后续swift命令使用
export ST_AUTH=http: //l-swift1.ops.dev.cn0.qunar.com/auth/v1.0
  export ST_USER=test:1111 # 即 <account>:<user> 生产环境 二者相同
export ST_KEY=test111
  iii.查看推送的镜像
[root@harbor harbor]# swift list registry2
files/docker/registry/v2/blobs/sha256/24/24e0251a0e2ccc2fedbdf51dd44f851622f504c7ddfad56ce0f1c63e1101cb20/data
files/docker/registry/v2/blobs/sha256/5d/5d496b46a65c86de3fbe464873facf539e2b569bd385452513a2faf7d2755151/data
files/docker/registry/v2/blobs/sha256/64/645a6d54fa55d320650aba028be907181a82469586572efeb747d31bf57a3c04/data
files/docker/registry/v2/blobs/sha256/7c/7c12f0afe6213cf16714a84045cf3e8a76e4ac7576d1f95f3fe6c1e85a2412c9/data
files/docker/registry/v2/blobs/sha256/82/82659f8f1b7628b94f8919ece229321a16ec0b7139cf289e010b7c064f603516/data
files/docker/registry/v2/blobs/sha256/82/8296858250fed454169c737c0706958c8a4a130e0bfdca3cf869fa767a19b4f1/data
files/docker/registry/v2/blobs/sha256/86/8604a5db4c0913b96bb435893b3308134652297a8e222d86ca905fd1c562acc9/data
files/docker/registry/v2/blobs/sha256/91/91ba831fd1f794de2d49971130291b3060b2df16f0fabcb48c69dc4615d083fc/data
files/docker/registry/v2/blobs/sha256/95/952132ac251a8df1f831b354a0b9a4cc7cd460b9c332ed664b4c205db6f22c29/data
files/docker/registry/v2/blobs/sha256/9e/9e73427a23966487d5c92c367c616cb0832ea86338586ea9bdcb2008323ff13e/data
swift其他命令
# 体会一下命令
swift stat                    # 查看账户信息

swift list                    # 显示容器列表
swift post img                # 创建容器
swift delete img              # 删除容器

swift list img                # 显示容器img中对象列表
swift upload img logo.png     # 将本地当前目录下的logo.png上传到img容器
swift delete img logo.png     # 删除容器img中的对象

swift download img            # 下载img容器所有文件到本地

七.高可用架构


      


    


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值