前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7部署harbor2.0(https)

CentOS7部署harbor2.0(https)

原创
作者头像
iginkgo18
修改2021-08-25 11:42:49
8664
修改2021-08-25 11:42:49
举报
文章被收录于专栏:devops_k8sdevops_k8s

1.0 Harbor简介

Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器

Harbor 可帮助用户迅速搭建企业级的 Registry 服务, 它提供了管理图形界面, 基于角色的访问控制 ( Role Based Access Control), 镜像远程复制 (同步), AD/LDAP 集成, 以及审计日志等企业用户需求的功能, 同时还原生支持中文, 深受中国用户的喜爱;

Harbor相比于Registry有以下优势

  1. 提供分层传输机制,优化网络传输,Docker镜像是分层的,而如果每次传输都使用全量文件,显然效率不是很高,必须提供识别分层传输的机制,以层的UUID为标识,确认传输的对象.
  2. 提供WEB界面,优化用户体验,只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登录,搜索功能,包括区分公有,私有镜像
  3. 支持水平扩展集群,当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力工作分解.
  4. 良好的安全机制,企业中的开发团队有很多不同的职位,对于不通的职位人员,分配不通的权限,具有更好的安全性.

2.0 部署Harbor

2.1 下载harbor依赖

是 VMware 公司开源了企业级 Registry 项目, 其的目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。

由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必须 >=1.10.0 docker-compose >=1.6.0

安装docker

代码语言:javascript
复制
# 安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bridge-utils

# 添加软件源信息
# 阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

mkdir /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://plqjafsr.mirror.aliyuncs.com"]
}
systemctl start docker && systemctl enable docker
systemctl daemon-reload
2.2 安装docker-compose
代码语言:javascript
复制
curl -L https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.3.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose

# 启动docker-compose
chmod +x /usr/local/bin/docker-compose
2.3 下载解压Docker Harbor

wget https://github.com/goharbor/harbor/releases/download/v2.3.2/harbor-offline-installer-v2.3.2.tgz

代码语言:javascript
复制
# 对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
# 测试是否安装成功
docker-compose --version
# 按照上面给的docker harbor地址,下载离线安装包
tar xf harbor-offline-installer-v2.2.3.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmpl  harbor.yml
2.4 配置harbor https证书
代码语言:javascript
复制
openssl req     -newkey rsa:4096 -nodes -sha256 -keyout ca.key     -x509 -days 365 -out ca.crt
openssl req     -newkey rsa:4096 -nodes -sha256 -keyout youmen.com.key -out youmen.com.csr
openssl x509 -req -days 365 -in  youmen.com.csr -CA ca.crt -CAkey ca.key  -CAcreateserial -out youmen.com.crt
cp youmen.com.crt  /data/cert/
cp youmen.com.key /data/cert/
2.5 初始化harbor
代码语言:javascript
复制
./prepare 
./install.sh 

docker-compose down -v
docker-compose up -d

3.0 客户端使用harbor

为了体现出效果,建议使用非harbor的另一台机器

代码语言:javascript
复制
# 服务端生成client.key
openssl genrsa -out client.key 4096
openssl req -new -x509 -text -key client.key -out client.cert

# 客户端修改配置文件
[root@ten2 docker]# cat /etc/docker/daemon.json 
{
"insecure-registries": ["https://youmen.com"]
}

[root@ten2 docker]# ls /etc/docker/certs.d/
ca.crt  client.cert  client.key

[root@ten2 docker]# ls /etc/pki/ca-trust/source/anchors/
ca.crt  client.cert  client.key

systemctl daemon-reload
systemctl restart docker

docker tag nginx:latest youmen.com/library/nginx:latest
docker push youmen.com/library/nginx:latest

[root@ten2 docker]#  docker login -u admin -p 12345a youmen.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.0 Harbor简介
  • 2.0 部署Harbor
    • 2.1 下载harbor依赖
      • 2.2 安装docker-compose
        • 2.3 下载解压Docker Harbor
          • 2.4 配置harbor https证书
            • 2.5 初始化harbor
            • 3.0 客户端使用harbor
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档