Skip to content

镜像仓库

信云+平台搭建并集成了Harbor作为容器云的镜像仓库,用来存储和管理镜像。

用户通过下文介绍的方式向镜像仓库推送自己构建的镜像,再设定服务引用这个镜像,在Pod每次启动时,信云+将自动地从镜像仓库拉取镜像,将其启动为容器。

镜像仓库的权限

私有镜像仓库

  • 只有被授权的用户才能查看、下载私有库的镜像;
  • 在信云+上,默认地为每个容器项目分配了一个和项目同名的镜像仓库,用以存储该项目下专用的镜像;
  • 项目管理员在项目详情/镜像权限可以添加和删除镜像仓库权限,分为仅拉取拉取/推送两种权限。

公有镜像仓库

  • 只有被授权的用户才能向公有镜像仓库上传镜像,所有用户都可以查看和下载镜像;
  • 在信云+上维护了一些公有镜像仓库,如ocp_registry、system_containers,提供了诸如nacos、nginx、ops-tool等通用镜像;
  • 可以联系平台管理员,将自己的私有镜像仓库公开为公有镜像仓库;
  • 一些公司会将自家产品的镜像发布到互联网上的公开镜像仓库中,如Docker Hub,供全世界的开发人员安全地检索和下载。如果你有需要,可以联系平台管理员将此类公开镜像导入到信云+平台的公有镜像仓库中。

注意

禁止从不安全的、非官方的来源下载镜像,或下载没有安全保证的镜像,然后将其导入信云+平台镜像仓库。

如果造成安全问题,需要承担相应责任。

镜像来源

【推荐】CI/CD推送

  • 推荐使用CI/CD功能,通过将源码打包和构建,生成镜像,根据构建任务中定义的信息推送到相应的私有镜像仓库。
  • 镜像名称根据定义来确定,版本根据选择的标签定义。

devops-镜像仓库-cicd推送

  • 如果实施方不能交付源码的情况下,可以直接选择基于应用包部署成服务;或下文直接上传镜像的方法。

页面上传

  • 镜像需要保存为.tar或.tar.gz格式;

  • 点击私有镜像仓库/上传镜像文件,选择本地镜像文件并上传。

  • 指定仓库组和镜像名称、版本,点击开始导入。

devops-镜像仓库-导入镜像

命令行上传

  • 如果镜像非常大(≥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后再查看;

  • 查看容量:如果当前仓库中所有镜像的大小之和,或数量之和超过了上限,则无法向镜像仓库中上传新的镜像,需要定期删除老旧的镜像,可联系平台管理员批量删除。

    devops-镜像仓库-私有镜像仓库devops-镜像仓库-常用镜像操作