阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker入门之搭建私有企业级镜像仓库Harbor

130次阅读
没有评论

共计 4063 个字符,预计需要花费 11 分钟才能阅读完成。

Docker 入门之搭建私有企业级镜像仓库 Harbor

为什么要搭建私有镜像仓库

  对于一个刚刚接触 Docker 的人来说, 官方的 Docker hub 是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像推送上去,但是 Docker hub 提供的私有仓库个数有限。对于个人来说 Docker hub 是个不错的选择,但是对于企业来说,相对于安全,成本和公司的架构来说搭建自己的私有镜像仓库才是正确的道路。

什么是 Harbor? 为什么要选择 Harbor

  Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 – 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 – 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 – 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 – Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
  • 审计管理 – 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 – 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API – RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
  • 部署简单 – 提供在线和离线两种安装工具,也可以安装到 vSphere 平台 (OVA 方式) 虚拟设备。
    这就是官网原话。完美解释了什么是 Harbor? 为什么要选择 Harbor。上面解释那么多的 Harbor, 现在我们来开始安装吧。

    Harbor 安装

      要安装 Harbor, 有以下几个先决条件:
        Python 版本大于或者等于 2.7
        
    Docker engine 的版本大于等于 1.10
        Docker Compose 的版本大于 1.6.0

  首先我们需要检查自己服务器是否支持上面 3 个条件。输入以下代码检查

#python2.7 官网安装页面
https://www.python.org/downloads/release/python-2711/
# 检查 Python 版本.Ubuntu 16.04 已经集成了 python2.7。
python -V
# 检查 Docker 的版本
docker -v
#Docker Compose 安装脚本
sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 检查 Docker Compose 的版
docker-compose –version
# 如果提示 Permission denied。执行以下语句赋权
sudo chmod +x /usr/local/bin/docker-compose

  确保服务器上的软件版本已经满足以上要求之后。我们现在开始安装 Harbor。如果不知道怎么安装 docker 可以参考  https://www.linuxidc.com/Linux/2018-03/151318.htm

下载 Harbor

# 下载安装包
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
# 解压
tar -xzf harbor-offline-installer-v1.1.2.tgz
cd harbor
# 编辑配置文件
vi harbor.cfg

配置文件注释参考]

## Configuration file of Harbor

# 设置访问地址,支持 IP,域名,主机名,禁止设置 127.0.0.1
hostname = reg.mydomain.com

# 访问方式,http 或者 https
ui_url_protocol = http

# 邮件通知相关设置
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_admin_password = Harbor12345

#harbor 认证模式,默认为 db_auth,本地 mysql,也可以配置 ldap 认证
auth_mode = db_auth

#ldap 认证配置
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 3

#mysql 数据库设置
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
token_expiration = 30
verify_remote_cert = on
customize_crt = on

# 显示的认证及组织信息
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = example@example.com
project_creation_restriction = everyone

#SSL 证书地址。只有开启 https 访问才生效
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
#############

  以上按照自己需求修改。如果想开启 https 模式访问需要自己申请 ssl 证书。harbor 默认监听 80 端口。如果需要修改端口。请修改目录下的 docker-compose.yml 文件,
Docker 入门之搭建私有企业级镜像仓库 Harbor
修改完成之后。运行

sudo ./install.sh

  进行安装。安装完成之后他会自己启动。这里他会自己下载一些他所需的 images。过程有点慢。可以通过阿里云的镜像加速器来加速。阿里云镜像加速器 . 打开链接登录之后点击镜像加速。然后你会得到一个专属加速地址。如图
Docker 入门之搭建私有企业级镜像仓库 Harbor可以根据自己的环境查看文档安装使用。然后等待命令执行结束。
Docker 入门之搭建私有企业级镜像仓库 Harbor

开启 https

  如果使用 http 的这里可以跳过,我们把已经申请好的证书文件放到 /data/cert 目录下面。然后修改 harbor.cfg 文件

Docker 入门之搭建私有企业级镜像仓库 Harbor
  安装成功之后打开之前自己设定的域名或者 IP 地址。测试地址。测试用户名:harbor_test,测试密码:Harbor_test123
Docker 入门之搭建私有企业级镜像仓库 Harbor

使用 harbor

创建用户

harbor 已经创建成功。现在我们来开始创建一个用户。
Docker 入门之搭建私有企业级镜像仓库 Harbor

创建项目

创建项目,并添加用户
Docker 入门之搭建私有企业级镜像仓库 Harbor

上传镜像

首先使用 docker login 命令登录:

# 登录
robin:~ robin$ sudo docker login shepherd618.cn
Username: admin
Password:
Login Succeeded
# 查看本地镜像
robin:docker_demo robin$ sudo docker images
Password:
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE
docker_demo        latest              fdd994bee741        19 seconds ago      283MB
node                8.9-alpine          406f227b21f5        2 weeks ago        68.1MB
# 给 dcoker_demo 新增 tag
robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo
#push images
robin:docker_demo robin$ docker push shepherd618.cn/test/demo
The push refers to repository [shepherd618.cn/test/demo]
f8387a884f73: Layer already exists
d74f9d9e7013: Pushed
f846841ed47f: Layer already exists
0198944a9875: Layer already exists
9dfa40a0da3b: Layer already exists
latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374

然后打开 harbor, 会看到刚刚上传的 images 和操作日志
Docker 入门之搭建私有企业级镜像仓库 Harbor

当我们需要用到这个 images 的时候可以通过上面给的 pull 命令下载到本地。到此整个安装过程结束。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4063字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中