Docker之Harbor私服的搭建及使用

今天给大家带来Harbor环境的搭建,以及使用介绍

  • Harbor介绍:

    Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry
    也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、
    镜像复制和中文支持等功能。


  • 本机环境:
    centos7
    docker:Docker version 18.06.1-ce
    docker-compose:docker-compose version 1.22.0
    这里要说明一下,要使用Harbor,需要docker,和docker-compose

1.Docker 安装

# yum 包更新
[root@centos7 ~]# yum update

# 卸载旧版本 Docker
[root@centos7 ~]# yum remove docker docker-common docker-selinux docker-engine

# 安装软件包
[root@centos7 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker yum源
[root@centos7 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
[root@centos7 ~]# yum -y install docker-ce

# 启动 Docker
[root@centos7 ~]# systemctl start docker

# 查看 Docker 版本号
[root@centos7 ~]# docker --version

2.Docker Compose 安装

# 安装 epel-release
[root@centos7 ~]# yum install epel-release

# 安装 python-pip
[root@centos7 ~]# yum install -y python-pip

# 安装 docker-compose
[root@centos7 ~]# pip install docker-compose

# 安装 git
[root@centos7 ~]# yum install git

# 查看 docker-compose 版本号
[root@centos7 ~] docker-compose -version
  • 到这里Harbor的环境已经搭建完成,现在开始安装Harbor吧

点击这里下载Harbor

在这里插入图片描述
这里分为在线和离线的版本,我下载的是1.6.0在线的版本

  • 下载下来之后解压缩,目录下会有harbor.conf,就是Harbor的配置文件了。
    ## Configuration file of Harbor
    
    # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
    hostname = 10.0.86.193
    
    # 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
    ui_url_protocol = http
    
    # mysql数据库root用户默认密码root123,实际使用时修改下
    db_password = root123
    
    max_job_workers = 3 
    customize_crt = on
    ssl_cert = /data/cert/server.crt
    ssl_cert_key = /data/cert/server.key
    secretkey_path = /data
    admiral_url = NA
    
    # 邮件设置,发送重置密码邮件时使用
    email_identity = 
    email_server = smtp.mydomain.com
    email_server_port = 25
    email_username = sample_admin@mydomain.com
    email_password = abc
    email_from = admin <sample_admin@mydomain.com>
    email_ssl = false
    
    # 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
    harbor_admin_password = Harbor12345
    
    # 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
    auth_mode = db_auth
    
    # LDAP认证时配置项
    #ldap_url = ldaps://ldap.mydomain.com
    #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
    #ldap_search_pwd = password
    #ldap_basedn = ou=people,dc=mydomain,dc=com
    #ldap_filter = (objectClass=person)
    #ldap_uid = uid 
    #ldap_scope = 3 
    #ldap_timeout = 5
    
    # 是否开启自注册
    self_registration = on
    
    # Token有效时间,默认30分钟
    token_expiration = 30
    
    # 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
    project_creation_restriction = everyone
    
    verify_remote_cert = on

  • 配置Harbor
    配置完成之后再当前目录下执行./prepare,再执行./install.sh。Harbor就回根据当前目录下的docker-compose.yml下载依赖的镜像
  • 启动Harbor
    安装完成之后,打开浏览器访问你上边配置的hostname属性,就能看到Harbor的界面了。
    在这里插入图片描述
    账号默认是admin,密码默认Harbor12345(就是你上班配置文件中配置的,如果没有改动的话就是这个)

这里还要在说一个问题
Harbor是搭建完成了,在我们上传项目的时候可能会出现一些问题

docker login 10.0.86.193
Username: admin
Password:
Error response from daemon: Get https://10.0.86.193/v1/users/: dial tcp 10.0.86.193:443: getsockopt: connection refused

在我们进行登录上传代码的时候,会报出这样的错误
这是因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。
解决办法:
如果是在Harbor本机登录可以这样做如下解决

  1. 如果系统是MacOS,则可以点击“Preference”里面的“Advanced”在“Insecure
    Registry”里加上10.0.86.193,重启Docker客户端就可以了。
  • 如果系统是Ubuntu,则修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart参数,增加–insecure-registry
    10.0.86.193。
  • 如果系统是Centos7,可以在/etc/docker/daemon.json 加上如下内容(注意是json字符串)
     {
      "insecure-registries": [
        "10.0.86.193"
      ]
    }

打开docker-compose.yml添加如下内容,注意前边的空格
在这里插入图片描述
然后我们执行docker-compose stop
./install.sh
再次登录就OK了

    [root@docker02appl]# docker login 10.0.86.193
    Username(admin): admin
    Password: 
    Login Succeeded

如果是远程登录的话,也会出现这个错误

  • 查找Docker的服务文件:登录到已经安装Docker的服务器,输入 systemctl status docker查看Docker的service文件。
    在这里插入图片描述

  • 编辑docker.service文件:在ExecStart处添加 –insecure-registry 参数。
    在这里插入图片描述
    后边跟的是你Harbor的地址

  • 重新加载service文件,重启docker服务。

    systemctl daemon-reload
    systemctl restart docker

再次登录:

    docker login [ip地址或域名](Harbor地址,harbor.cfg文件中的hostname项)
    //根据提示分别输入用户名和密码
**附上拉取和推送的命令:**
3\.Harbor私服的使用
#推送之前先登录Harbor
	docker login 10.0.86.193
	admin
	Harbor12345
	提示success登录成功
	
	查看自己有哪些镜像;docker images
	把需要上传到Harbor的镜像运行如下命令就可以了
    #镜像打标签
    [root@centos7 ~]#docker tag 镜像名:标签 私服地址/仓库项目名/镜像名:标签
    
    #推送到私服
    [root@centos7 ~]#docker push  私服地址/仓库项目名/镜像名:标签  
    
    #从私服拉取镜像
    [root@centos7 ~]#docker pull 私服地址/仓库项目名/镜像名:标签
发布了19 篇原创文章 · 获赞 9 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览