Docker私有仓库部署和管理
Docker私有仓库部署和管理Harbor介绍Harbor是VMware公司开源的企业级Docker Registry项目Harbor的优势基于角色控制基于镜像的复制策略支持LDAP/AD图像删除和垃圾收集图形UI审计RESTful APIHarbor架构组成Proxy通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务R...
·
Docker私有仓库部署和管理
Harbor介绍
部署Harbor所依赖的Docker Compose服务
部署Harbor服务
Harbor日常操作管理
Harbor管理生命周期
Harbor是VMware公司开源的企业级Docker Registry项目
Harbor的优势
- 基于角色控制
- 基于镜像的复制策略
- 支持LDAP/AD
- 图像删除和垃圾收集
- 图形UI
- 审计
- RESTful API
Harbor架构组成
Proxy
- 通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务
Registry
- 负责存储Docker镜像。并处理docker push/pull 命令
Core services
- Harbor的核心功能,包括UI、webhook、token服务
UI:提供网络页面
token:令牌
Webhook:微服务中的回调机制
Database
- 为core services提供数据库服务
Log collector
- 负责收集其他组件的log,供日后进行分析
Docker私有仓库架构拓扑:
用户请求通过Proxy反向代理访问Core services,UI提供web界面,token令牌,你第一次登录之后服务器会给你一串序列号,下次直接登录就行,你需要下载的镜像信息,属性,都存放在后面的database,再通过webhook回调去registry私有仓库调取镜像。这一系列的操作都存放在日志中。
部署Harbor服务
环境包的配置
#挂载软件包
[root@localhost ~]# mount.cifs //192.168.100.3/lzp /mnt
# 配置docker-compose
[root@localhost ~]# cd /mnt/docker/
[root@localhost docker]# cp docker-compose /usr/local/bin
#解压harbor包
[root@localhost docker]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local
[root@localhost docker]# cd /usr/local/harbor/
Harbor环境配置
[root@localhost harbor]# vim harbor.cfg
#地址改为自己本机地址
hostname = 192.168.45.128
[root@localhost harbor]# ./install.sh
登录harbor
[root@localhost harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1
在宿主机上用浏览器进行登录验证
#我们本地进行上传镜像
[root@localhost harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1
[root@localhost harbor]# docker pull cirros
[root@localhost harbor]# docker tag cirros 127.0.0.1/chen/cirros:v1
[root@localhost harbor]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1/chen/cirros v1 bc94bceaae77 12 months ago 10.3MB
cirros latest bc94bceaae77 12 months ago 10.3MB
[root@localhost harbor]# docker push 127.0.0.1/chen/cirros:v1
The push refers to repository [127.0.0.1/chen/cirros]
abbd6d6ac643: Pushed
75b99987219d: Pushed
0cc237193a30: Pushed
v1: digest: sha256:96137d51e0e46006243fa2403723eb47f67818802d1175b5cde7eaa7f19446bd size: 943
查看
#远程客户端上传镜像到私有仓库
#远程登录会报错
[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.136.185
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.136.185/v2/: dial tcp 192.168.136.185:443: connect: connection refused
#我们要指定私有仓库实列
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
14 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.136.185 --containerd=/run/contai nerd/containerd.sock
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.136.185
#远程下载私有仓库的镜像
[root@localhost ~]# docker pull 192.168.136.185/chen/cirros:v1
#远程上传镜像到私有仓库
[root@localhost ~]# docker push 192.168.136.185/chen/cirros:v2
The push refers to repository [192.168.136.185/chen/cirros]
abbd6d6ac643: Layer already exists
75b99987219d: Layer already exists
0cc237193a30: Layer already exists
v2: digest: sha256:96137d51e0e46006243fa2403723eb47f67818802d1175b5cde7eaa7f
#关闭harbor私有仓库
[root@localhost harbor]# docker-compose down -v
[root@localhost harbor]# ./prepare
#开启私有仓库
[root@localhost harbor]# docker-compose up -d
创建用户
#我们用刚才创建的用户来登录私有仓库
[root@localhost harbor]# docker login http://192.168.136.185
Username: chen
Password:
在项目中我们加入一个用户
如果要移除服务容器同时保留镜像数据库/数据库
docker-compose down -v
如需重新部署,需要移除harbor服务容器全部数据
/var/log/Harbor/目录下
rm-rf /data/database/ /data/registry/
更多推荐
已为社区贡献1条内容
所有评论(0)