镜像仓库
信云+平台搭建并集成了Harbor作为容器云的镜像仓库,用来存储和管理
镜像。
用户通过下文介绍的方式向镜像仓库推送自己构建的镜像,再设定服务引用这个镜像,在Pod每次启动时,信云+将自动地从镜像仓库拉取镜像,将其启动为容器。
镜像仓库的权限
私有镜像仓库
- 只有被授权的用户才能查看、下载私有库的镜像;
- 在信云+上,默认地为每个容器项目分配了一个和
项目同名
的镜像仓库,用以存储该项目下专用的镜像; - 项目管理员在
项目详情/镜像权限
可以添加和删除镜像仓库权限,分为仅拉取
和拉取/推送
两种权限。
公有镜像仓库
- 只有被授权的用户才能向公有镜像仓库上传镜像,
所有
用户都可以查看和下载镜像; - 在信云+上维护了一些公有镜像仓库,如ocp_registry、system_containers,提供了诸如nacos、nginx、ops-tool等通用镜像;
- 可以联系平台管理员,将自己的私有镜像仓库公开为公有镜像仓库;
- 一些公司会将自家产品的镜像发布到互联网上的公开镜像仓库中,如Docker Hub,供全世界的开发人员安全地检索和下载。如果你有需要,可以联系平台管理员将此类公开镜像导入到信云+平台的公有镜像仓库中。
注意
禁止从不安全的、非官方的来源下载镜像,或下载没有安全保证的镜像,然后将其导入信云+平台镜像仓库。
如果造成安全问题,需要承担相应责任。
镜像来源
【推荐】CI/CD推送
- 推荐使用CI/CD功能,通过将源码打包和构建,生成镜像,根据构建任务中定义的信息推送到相应的私有镜像仓库。
- 镜像名称根据定义来确定,版本根据选择的标签定义。
- 如果实施方不能交付源码的情况下,可以直接选择基于应用包部署成服务;或下文直接上传镜像的方法。
页面上传
镜像需要保存为.tar或.tar.gz格式;
点击
私有镜像仓库/上传镜像文件
,选择本地镜像文件并上传。指定仓库组和镜像名称、版本,点击开始导入。
命令行上传
- 如果镜像非常大(≥3Gi)且更新频繁,也可以通过命令行直接推送至镜像仓库。
bash
# 把镜像tar包加载进docker images里面
docker load -i 镜像包.tar
# 查看加载的镜像名
docker images
# 重新给镜像打标签
docker tag 原始镜像名称 镜像仓库地址/镜像名称:镜像tag
# 登录镜像仓库
docker login -u 用户名 -p 密码
# 把镜像推送到有权限的镜像仓库
docker push 镜像仓库地址/镜像名称:镜像tag
# (可选)删除本地的镜像文件
docker rmi 镜像仓库地址/镜像名称:镜像tag
docker rmi 原始镜像名称
rm -f 镜像包.tar
- login所使用的user名和passwd需联系平台管理员索要。
- 本地服务器需要开通到镜像仓库80/443的端口权限。
注意
镜像大小控制在800MB以下最佳,过大镜像会浪费存储空间、造成Pod启动慢。
请确保镜像中只包含必要
的文件、软件包和依赖项,避免将不必要的文件打包进镜像中。
常用操作
查看镜像:点击
容器服务/镜像仓库
查看镜像仓库列表、镜像列表、镜像版本列表;更新Harbor:如果在镜像列表中找不到新从CI/CD推送或直接上传的镜像,可点击
更新Harbor
,2min后再查看;查看容量:如果当前仓库中所有镜像的大小之和,或数量之和超过了上限,则无法向镜像仓库中上传新的镜像,需要定期删除老旧的镜像,可联系平台管理员批量删除。