docker 企业级的私有仓库搭建

    在生产环境中我们使用共有仓库或私有仓库都不太合适,这里搭建一个企业级的私有仓库,操作极其简单。

     Harbor 是一个开源镜像仓库,可通过基于角色的访问控制来保护镜像,新版本的Harbor还增加了扫描镜像中的漏洞并将镜像签名为受信任。

作为CNCF孵化项目,Harbor提供合规性,性能和互操作性,以帮助你跨Kubernetes和Docker等云原生计算平台持续,安全地管理镜像。

Harbor组件均以Docker容器方式启动,因此,你可以将其部署在任何支持Docker的Linux发行版上。

特性:

☆  易于部署:可通过Docker compose或Helm Chart 部署 Harbor。

☆  云原生注册表:Harbor 支持容器镜像和Helm图表,可作为容器原生运行时和编排平台等云原         生环境的注册表。

☆  基于角色控制:用户通过项目访问不同的存储库,并且用户可以对项目下的镜像或Helm图表具       有不同的权限。

☆  基于策略的复制:可以使用过滤器基于策略在多个注册表实例之间复制(同步)镜像和图表。

☆  镜像删除和垃圾收集:系统管理员可以运行垃圾收集作业,以便可以删除镜像,并可以定期释       放其空间。

☆  漏洞扫描:Harbor会定期扫描映像中的漏洞,并进行策略检查以防止部署易受攻击的映像。

☆  公证人:支持对容器镜像进行签名,以确保真实性和出处。

☆  审核:通过日志跟踪对存储库的所有操作。

☆  图形门户:用户可以轻松浏览,搜索存储库和管理项目。

☆  外部集成:提供RESTful API有助于管理操作,并且易于与外部系统集成。

硬件要求

处理器最低2个cpu
内存最低4GB
磁盘最低40GB

软件要求

Docker-enginev17.06.0-ce 或更高版本
Docker-composev1.18.0 或更高版本
Opecssl最好是最新的

端口需求,都可以在配置文件中修改

端口协议说明
443

HTTPS

Harbor与API请求HTTPS端口
4443HTTPSHarbor与Docker信任互联端口,尽在启用Notary时需要
80HTTPHarbor与API请求HTTP端口

添加一台docker作为私有仓库存放。实验环境如下

k8s-master :192.168.0.30

k8s-node1: 192.168.0.40

k8s-node2: 192.168.0.50

harbor: 192.168.0.90

1、下载并解压到/usr/src/haebor, https://github.com/goharbor/harbor/releases/

[root@k8s-1 ~]# wget https://github.com/goharbor/harbor/releases/download/v1.10.8/harbor-offline-installer-v1.10.8.tgz

2、cd /usr/src下

[root@k8s-1 harbor]# ll
total 575952
-rw-r--r-- 1 root root      3398 Jun 27 07:54 common.sh
-rw-r--r-- 1 root root 589739559 Jun 27 07:54 harbor.v1.10.8.tar.gz
-rw-r--r-- 1 root root      5882 Jun 27 07:54 harbor.yml
-rwxr-xr-x 1 root root      2284 Jun 27 07:54 install.sh
-rw-r--r-- 1 root root     11347 Jun 27 07:54 LICENSE
-rwxr-xr-x 1 root root      1749 Jun 27 07:54 prepare

3、编辑harbor.yaml文件,hostname为本地ip,port随意,避免冲突就好,https暂时注释掉

4、安装docker-ce-20.10.7和docker-compose,前面说过这里不再演示。

5、下载镜像

[root@k8s-1 ~]# docker pull goharbor/prepare:v1.10.8

6、使用./prepare进行测试

7、测试成功,使用install.sh安装

需要下载几个必须的镜像,所以稍稍等一会,如果最后出现了? ----Harbor has been installed and started successfully.---- 就是成功了。

8、运行docker-compose.yaml文件

[root@k8s-4 harbor]# docker-compose up -d
harbor-log is up-to-date
registry is up-to-date
registryctl is up-to-date
redis is up-to-date
harbor-portal is up-to-date
harbor-db is up-to-date
harbor-core is up-to-date
nginx is up-to-date
harbor-jobservice is up-to-date

 

9、在浏览器中输入192.168.0.90:180,输入用户和密码登录,密码和用户在配置文件里面

   默认的用户是admin,密码是Harbor12345

10、创建一个项目,起名字,选择公开就行

选择左侧的用户管理,创建一个新用户

把用户添加到我们新创建的项目中

添加成功,接下来实验能否推送和拉取镜像,用bosybox镜像为例子

先下载busybox镜像

[root@k8s-4 ~]# docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
b71f96345d44: Pull complete 
Digest: sha256:930490f97e5b921535c153e0e7110d251134cc4b72bbb8133c6a5065cc68580d
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest

11、docker默认找到仓库是公有仓库,所以要先编辑配置文件,把我们的私有仓库添加信任。每一台docker都添加,方便我们一会拉取镜像测试

   vim /etc/docker/daemon.json

    {
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "insecure-registries":["192.168.0.90:180"]
}

 

重启docker

[root@k8s-4 ~]# systemctl daemon-reload
[root@k8s-4 ~]# systemctl restart docker

docker  info查看

接下来如果网站出现问题,就重新执行/usr/src/harbor/下install.sh文件。

12、登录到我们的仓库

docker  login  192.168.0.90:180

13、指定仓库,项目名修改镜像,进行测试

到浏览器查看是否成功

成功!

14、到k8s-node2上进行拉取测试

成功!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_46715997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值