实战案例——Docker仓库的使用与维护

Docker仓库的使用与维护

一、实验目标

  1. 了解主流的Docker仓库
  2. 掌握Harbor私有仓库的搭建与使用
  3. 掌握Harbor私有仓库的主从同步

二、节点规划

  1. 三台节点:分别命名为master(Harbor仓库节点)slave(Harbor备份节点)client(Docker客户端),三台节点网络配置同一网段,提前关闭防火墙(关闭后重启docker)
  2. 所有节点都已安装好Docker-ce,并执行脚本image.sh(前一篇安装Docker引擎实验时解压出来的),连通公网配置加速器。

三、实验步骤

3.1、配置镜像加速

阿里云镜像加速

#修改守护进程`/etc/docker/daemon.json`文件
# 添加加速地址;也可以自行查询添加阿里云镜像加速
[root@master]# vi /etc/docker/daemon.json
{
        "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}
# 重启Docker使加速器生效
systemctl restart docker

3.2、部署Harbor

3.2.1、生成CA证书
# 创建并进入证书路径
mkdir -p /data/ssl
cd /data/ssl

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 2.235 -out ca.crt
(依次填写证书参数,以下仅为示例,可自定义)
CN #国家
Guizhou #州或省名
Guizhou #城市
Gzky #公司名称
Gzky #组织单位名称
www.gzky.edu.cn #域名
gzydzb@163.com #邮箱地址

#生成证书签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.gzky.edu.cn.key -out www.gzky.edu.cn.csr
(依次填写证书参数,以下仅为示例,可自定义)
CN
Guizhou
Guizhou
Gzky
Gzky
www.gzky.edu.cn
gzydzb@163.com
000000
gzky

# 生成注册表主机的证书
openssl x509 -req -days 2.35 -in www.gzky.edu.cn.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.gzky.edu.cn.crt

#查看证书文件
ll /data/ssl/
总用量 28
-rw-r--r-- 1 root root 2106 1027 18:57 ca.crt
-rw-r--r-- 1 root root 3272 1027 18:57 ca.key
-rw-r--r-- 1 root root   17 1027 19:12 ca.srl
-rw-r--r-- 1 root root 1988 1027 19:12 www.gzky.edu.cn.crt
-rw-r--r-- 1 root root 1801 1027 19:07 www.gzky.edu.cn.csr
-rw-r--r-- 1 root root 3272 1027 19:07 www.gzky.edu.cn.key
3.2.2、分发证书
# 将证书拷贝至证书源目录
cp -rvf ./www.gzky.edu.cn.crt /etc/pki/ca-trust/source/anchors/
# 启用证书并更新
update-ca-trust enable
update-ca-trust extract
3.2.3、安装Docker-compose
# 将上次实验中docker压缩包中解压出的compose文件下的docker-compose文件拷贝到/usr/local/bin/目录下
cp -rvf /root/compose/docker-compose /usr/local/bin

#添加可执行权限
chmod +x /usr/local/bin/docker-compose

#查看软件版本信息
docker-compose --version
3.2.4、载入Harbor安装包
# 将上次实验中docker压缩包中解压出的harbor-office-installer-v1.5.3.tgz压缩包解压到/opt目录下
tar -zxvf /root/harbor-office-installer-v1.5.3.tgz -C /opt
3.2.5、配置harbor
#跳转至Harbor目录
cd /opt/harbor/

#编辑配置文件
vi harbor.cfg
#修改以下参数
hostname = 192.168.200.10 #Harbor的启动IP,一般就是该主机IP
ui_url_protocol = https #启用加密传输协议https
ssl_cert = /data/ssl/www.gzky.edu.cn.crt #证书的位置
ssl_cert_key = /data/ssl/www.gzky.edu.cn.key #证书秘钥的位置
harbor_admin_password = 000000 #Harbor的admin用户的密码
3.2.6、安装Harbor
#运行prepare脚本以启用HTTPS,Harbor将nginx实例用作所有服务的反向代理。(该脚本在Harbor目录下)
./prepare
# 安装Harbor并启用镜像扫描(--with-clair为镜像扫描工具 --with-notary为安全性设置)
./install.sh --with-notary --with-clair

根据提示的地址用登录后台,账号admin密码000000
Harbor仓库安装成功后的访问地址
私有仓库选择性配置:选择“配置管理”,将“项目创建”项修改为仅管理员、取消选中“允许自注册”的复选框,保存

3.3、镜像管理与安全

3.3.1、配置Docker
#配置本地daemon.json文件
vi /etc/docker/daemon.json
#在原有的基础上添加以下内容(仓库地址)
"insecure-registries":["192.168.200.10"]
#添加完成后重启docker
systemctl restart docker

守护进程文件添加仓库地址

3.3.2、重新启动Harbor私有镜像仓库
# 刷新https信息(Harbor目录下)
./prepare
# 清理所有Harbor容器进程
docker-compose down
# 后台启动所有Harbor容器进程
docker-compose up -d
3.3.3、上传镜像
# 从公有仓库拉取centos镜像
docker pull centos
# 标记centos镜像
docker tag centos:latest 192.168.200.10/library/centos:latest

# 登录验证Harbor仓库
docker login https://192.168.200.10
# Username:admin
# Password:000000

# 上传镜像到Harbor仓库
docker push 192.168.200.10/library/centos:latest

# 重新启动漏洞扫描(Harbor目录下)
./install.sh --with-notary --with-clair
3.3.4、查看上传结果

浏览器登录,选择项目>镜像仓库,如下图:
检查仓库镜像内容

3.3.5、设置镜像仓库等级

选择项目>配置管理,取消选中阻止潜在漏洞镜像的复选框。如下图:
关闭-阻止潜在漏洞镜像

3.4、Docker客户端验证Harbor仓库

3.4.1、为Docker客户端下发域名证书
# 将master节点的证书发送到客户端的证书源目录
cd /data/ssl/
scp -r www.gzky.edu.cn.crt 192.168.200.30:/etc/pki/ca-trust/source/anchors/

# 生效证书(client节点)
update-ca-trust enable
update-ca-trust extract
# 重启client节点的Docker服务
systemctl restart docker
3.4.2、配置仓库(client节点)
#与3.3.1步骤相同,编辑/etc/docker/daemon.json文件添加以下参数
"insecure-registries":["192.168.200.10"]

# 重新载入配置文件并重启docker
systemctl daemon-reload
systemctl restart docker
# 从公有仓库拉取Nginx镜像
docker pull nginx
3.4.3、登录Harbor仓库(client节点)
# docker-client登录Harbor仓库进行登录验证
cd /etc/pki/ca-trust/source/anchors/
docker login https://192.168.200.10
3.4.4、上传镜像
# 标记镜像名上传到Harbor私有仓库
docker tag nginx:latest 192.168.200.10/library/nginx:latest
docker push 192.168.200.10/library/nginx:latest

使用浏览器登录Harbor进行查看列表,如下所示:
检查Harbor仓库镜像

3.5、Harbor主从复制

3.5.1、slave节点安装Harbor

slave节点安装一个Harbor私有仓库作为Harbor的从库,步骤参考之前的master节点的安装步骤(从3.1配置到3.2末尾),配置环境时域名设置为www2.gzky.edu.cn(此为示例,为了与前一份证书做区别),在浏览器输入“https://192.168.200.20(slave节点的IP)”登录Harbor,如图:
slave节点的Harbor仓库

3.5.2、分发证书(master节点)

主从同步需要通过证书认证,所以需要将slave节点的证书拷贝到master节点

# 在master节点上将slave节点的证书拷贝到master节点下
scp 192.168.200.20:/data/ssl/www2.gzky.edu.cn.crt /etc/pki/ca-trust/source/anchors/

# 重新生效证书并重启docker
update-ca-trust enable
update-ca-trust extract
systemctl restart docker

# 重启Harbor
cd /opt/harbor
docker-compose down
./prepare
./install.sh --with-notary --with-clair
3.5.3、构建Harbor主从同步

登录master节点的Harbor,添加slave节点为从库,操作如下图所示:
构建主从同步-添加从库
在master节点的Harbor仓库添加主从复制规则,操作如下图所示:
构建主从同步-添加复制规则
添加成功后登录slave节点的Harbor仓库查看镜像列表:(完成效果图为slave节点的仓库会自动与master节点的仓库同步)
slave节点的Harbor仓库同步数据成功示例图

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦南司

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

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

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

打赏作者

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

抵扣说明:

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

余额充值