使用harbor配置docker registry

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

前面连说了几篇与kubernetes相关的内容,这篇我们来说说docker registry。docker的registry与kubernetes本身并没有太直接的关系。但是任何使用到docker的地方,总少不了这玩艺儿。所以这篇博文我们专门来说一说如何使用开源的harbor来配置管理我们的私有registry。

harbor官方是这么描述harbor的:Harbor是可靠的企业级Registry服务器。企业用户可使用Harbor搭建私有容器Registry服务,提高生产效率和安全度,既可应用于生产环境,也可以在开发环境中使用。github地址:https://github.com/vmware/harbor

需要说明的是,由于harbor只支持registry v2的api,所以对docker的版本也是有要求的,至少得>=1.6.0。同时harbor的安装还依赖于docker-compose,当然官方也提供直接使用kubernetes部署的yml文件。所以其实我们可以想见,harbor的部署一定是以容器的形式来完成的

harbor共有六个容器组成:
harbor_ui:harbor的核心服务。
harbor_log:运行着rsyslog的容器,进行日志收集。
harbor_mysql:由官方mysql镜像构成的数据库容器
nginx:使用Nginx做反向代理
registry:官方的Docker registry
harbor_jobservice:Harbor的任务管理服务。
 
我这里的安装环境依然是基于centos 7.2。
首先安装docker-compose:

pip install docker-compose

下载docker的安装包:

git clone https://github.com/vmware/harbor 

cd harbor/make/

修改配置文件harbor.cfg如下:
复制代码

hostname = myhub.xxx.com
ui_url_protocol = https

email_server = smtp.163.com
email_server_port = 25
email_username = xxx@163.com
email_password = xxxxx
email_from = admin <xxx@163.com>
email_ssl = false
harbor_admin_password = xxx
ssl_cert = /data/server/harbor/make/cert/xxx.com.crt
ssl_cert_key = /data/server/harbor/make/cert/xxx.com.key

复制代码

其中两个ssl证书文件需要自行申请或者直接使用自签名证书。生成自签名证书的方法,在这里不做相关说明。

修改docker-compose.yml文件
复制代码

cp docker-compose.tpl docker-compose.yml

vim docker-compose.yml

version: '2'
services:
  log:
    image: myhub.fdccloud.com/library/harbor-log
    container_name: harbor-log 
    restart: always
    volumes:
      - /data/harbor/log/:/var/log/docker/
    ports:
      - 1514:514
  registry:
    image: myhub.fdccloud.com/library/registry:2.5.0
    container_name: registry
    restart: always
    volumes:
      - /data/registry:/storage
      - ./common/config/registry/:/etc/registry/
    environment:
      - GODEBUG=netdns=cgo
    command:
      ["serve", "/etc/registry/config.yml"]
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "registry"
  mysql:
    image: myhub.fdccloud.com/library/harbor-db
    container_name: harbor-db
    restart: always
    volumes:
      - /data/harbor/harbordb:/var/lib/mysql
    env_file:
      - ./common/config/db/env
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "mysql"
  ui:
    image: myhub.fdccloud.com/library/harbor-ui
    container_name: harbor-ui
    env_file:
      - ./common/config/ui/env
    restart: always
    volumes:
      - ./common/config/ui/app.conf:/etc/ui/app.conf
      - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem
      - /data/harbor/harbor_storage:/harbor_storage
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "ui"
  jobservice:
    image: myhub.fdccloud.com/library/harbor-jobservice
    container_name: harbor-jobservice
    env_file:
      - ./common/config/jobservice/env
    restart: always
    volumes:
      - /data/harbor/job_logs:/var/log/jobs
      - ./common/config/jobservice/app.conf:/etc/jobservice/app.conf
    depends_on:
      - ui
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "jobservice"
  proxy:
    image: myhub.fdccloud.com/library/nginx:1.11.5
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx
    ports:
      #- 80:80
      - 443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

复制代码

创建映射的相关目录:

mkdir -p /data/harbor/{harbordb,harbor_storage,job_logs,log}
mkdir /data/registry

执行harbor安装并启动:

./install.sh

也可以通过如下方式启动:

./prepare
docker-compose -f docker-compose.yml up -d

harbor访问界面如下:




本文转自 msj0905 51CTO博客,原文链接:http://blog.51cto.com/sky66/1934001
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
728 0
|
21天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
85 0
|
17天前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu篇-配置FTP服务,本机和docker安装
通过以上步骤,你可以在Ubuntu上配置FTP服务,无论是本机安装还是Docker内安装,都可以提供FTP文件传输服务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
20 1
|
1月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
51 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
207 0
|
1月前
|
安全 应用服务中间件 网络安全
Harbor基于docker-compose部署【亲测有效】
Harbor基于docker-compose部署【亲测有效】
68 4
|
1月前
|
关系型数据库 MySQL Linux
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
|
1月前
|
前端开发 应用服务中间件 nginx
Docker安装nginx和基本配置
Docker安装nginx和基本配置
131 0
|
2月前
|
存储 文件存储 数据安全/隐私保护
Docker环境下Minio文件存储的安装与配置
Docker环境下Minio文件存储的安装与配置
82 4
|
2月前
|
Docker 容器
Docker Compose的安装与配置
Docker Compose的安装与配置
130 2
Docker Compose的安装与配置