运维实操——docker容器(四)搭建远程容器仓库harbor、漏洞扫描和内容信任

搭建远程容器仓库harbor、漏洞扫描和内容信任

1、harbor简介

(1)虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。
(2)Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。
(3)它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能。
harbor的主要功能:基于角色的访问控制、基于镜像的复制策略、图形化用户界面、支持 AD/LDAP、镜像删除和垃圾回收、审计管理、RESTful API、部署简单。

harbor的整体架构如下
在这里插入图片描述

2、harbor的安装

提供在线和离线两种安装工具,本文使用离线安装,需要先安装好docker,并能上网。还需要准备有docker-compose-Linux-x86_64-1.27.0和harbor-offline-installer-v1.10.1.tgz。
docker-compose用来管理多个容器,形成一个完整独立的服务。
首先安装docker-compose:

[root@server1 ~]# ll
total 671560
-rwxr-xr-x 1 root root   1378816 Jul 21 21:18 busybox.tar
-rwxr-xr-x 1 root root  12215880 Jul 21 21:16 docker-compose-Linux-x86_64-1.27.0
-rwxr-xr-x 1 root root 674078519 Jul 21 21:17 harbor-offline-installer-v1.10.1.tgz
[root@server1 ~]# mv docker-compose-Linux-x86_64-1.27.0 /usr/local/bin/ %因为docker-compose安装包是二进制文件,所以放到/usr/local/bin
[root@server1 ~]# cd /usr/local/bin/
[root@server1 bin]# ls
docker-compose-Linux-x86_64-1.27.0
[root@server1 bin]# mv docker-compose-Linux-x86_64-1.27.0 docker-compose 	%改名
[root@server1 bin]# ls
docker-compose
[root@server1 bin]# chmod +x docker-compose 								%赋予执行权限
[root@server1 bin]# docker-compose -v										%查看版本号
docker-compose version 1.27.0, build 980ec85b

在这里插入图片描述
安装harbor:

[root@server1 ~]# tar zxf harbor-offline-installer-v1.10.1.tgz -C /usr/local/	%解压tar包
[root@server1 ~]# cd /usr/local/harbor/
[root@server1 harbor]# ls
common.sh  harbor.v1.10.1.tar.gz  harbor.yml  install.sh  LICENSE  prepare
[root@server1 harbor]# vim harbor.yml 				%修改配置文件
hostname: reg.westos.org
certificate: /data/certs/westos.org.crt			%证书和密钥路径要对
private_key: /data/certs/westos.org.key
harbor_admin_password: westos
[root@server1 harbor]# mv /root/certs/ /data/		%把之前的证书放到data路径下
[root@server1 harbor]# cd /data/
[root@server1 data]# ls
certs
[root@server1 data]# cd /usr/local/harbor/
[root@server1 harbor]# ./install.sh				%执行安装脚本(时间较长耐心等待)

在这里插入图片描述

安装成功
在这里插入图片描述

开启docker-compose
在这里插入图片描述

查看开启状态
在这里插入图片描述

可以查看日志
在这里插入图片描述
然后在真机/etc/hosts加上该主机域名解析,reg.westos.org
在浏览器输入reg.westos.org访问出现如下界面,
因为我们是自签名证书,没有经过可信第三方,所以会显示不安全的连接,我们手动信任即可,点击advanced
在这里插入图片描述

confirm
在这里插入图片描述

访问到了,输入账户admin和设定的密码westos
在这里插入图片描述
成功进入harbor,可以设置中文
在这里插入图片描述

[root@server1 reg.westos.org]# docker login reg.westos.org		%登陆reg.westos.org
Username: admin
Password: westos
Login Succeeded
[root@server1 harbor]# docker tag nginx:latest reg.westos.org/library/nginx:latest		%修改标签到reg.westos.org下
[root@server1 harbor]# docker push reg.westos.org/library/nginx:latest	%%上传镜像
		%注意本机也要加入域名解析reg.westos.org,否则无法识别。

在这里插入图片描述

看网页,library中多了一个nginx镜像,上传成功
在这里插入图片描述

添加默认仓库路径

[root@server1 harbor]# cd /etc/docker/
[root@server1 docker]# ls
certs.d  key.json
[root@server1 docker]# vim daemon.json
[root@server1 docker]# systemctl reload docker.service 
[root@server1 docker]# cat daemon.json 
{
  "registry-mirrors": ["https://reg.westos.org"]
}
[root@server1 docker]# docker info		%如果出现warning,下面解决
[root@server1 docker]# cd /etc/sysctl.d/
[root@server1 sysctl.d]# ls
99-sysctl.conf
[root@server1 sysctl.d]# vim docker.conf		%内容如下

[root@server1 sysctl.d]# sysctl --system

在这里插入图片描述

server2进行同样操作并测试,将daemon.json传给server2

[root@server1 docker]# scp daemon.json server2:/etc/docker/

在这里插入图片描述

拉取ngnix
在这里插入图片描述

网页可以查看下载和上传日志
在这里插入图片描述

删除后还可以run 拉取仓库的nginx
接下来,对项目进行管理,首先web添加项目westos
在这里插入图片描述

添加用户
在这里插入图片描述

在这里插入图片描述

添加用户到项目成员
在这里插入图片描述

添加镜像到westos项目中
在这里插入图片描述

网页查看已经加入了
在这里插入图片描述

server2中测试拉取:
在这里插入图片描述

web界面查看日志
在这里插入图片描述

3、漏洞扫描

[root@server1 harbor]# docker logout reg.westos.org			%登出
[root@server1 harbor]# docker-compose down					%关闭并清理
[root@server1 harbor]# ./prepare							%清理缓存
[root@server1 harbor]# ./install.sh --with-notary --with-clair --with-chartmuseum	%安装时添加扫描,签名等功能

在这里插入图片描述

[root@server1 ~]# docker login reg.westos.org			%登陆
[root@server1 ~]# docker load  -i busybox.tar 			%加载
[root@server1 ~]# docker tag busybox:latest reg.westos.org/library/busybox:latest	%改名到reg.westos.org/library/分类中
[root@server1 ~]# docker push reg.westos.org/library/busybox		%上传

进入页面,查看显示未扫描
在这里插入图片描述

可以手动扫描
在这里插入图片描述

扫描结束,显示没有漏洞
在这里插入图片描述

或者,我们也可以使用自动扫描,并保存,之后新添加的镜像就可以自动扫描
在这里插入图片描述

4、内容信任

mkdir -p /root/.docker/tls/reg.westos.org:4443				%创建根证书目录
cp /certs/westos.org.crt  /root/.docker/tls/reg.westos.org\:4443/ca.crt		%复制证书到根证书目录

启用docker内容信任
在这里插入图片描述

并在web中开启内容信任并保存
在这里插入图片描述

之前上传的镜像是未签名,远程无法下载未签名的镜像
在这里插入图片描述

之后上传内容信任的镜像,在web界面显示已签名

docker push reg.westos.org/library/nginx:latest
...
Enter passphrase for root key with ID e42f679: 				
Enter passphrase for new repository key with ID 383f503:
%第一次要输入 root key和repository key
%之后只需要输入repository key

关闭内容信任时export DOCKER_CONTENT_TRUST=0,在web页面也取消内容信任勾选并保存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值