DevOps

产品文档

DevOps

镜像广场

基于harbor创建私有化的docker镜像仓库,提供稳定的镜像托管服务,镜像广场包括官方镜像及私有镜像。

点击菜单栏中的“运维工具”,进入“镜像广场”。

Docker 客户端版本要求 1.12 及以上。

概念

1.项目

一个项目中,包含多个镜像仓库。一个镜像仓库中,包含多个版本

同一个租户名,项目名唯一

举例:

tenant0202.hub-ark-hn.jdcloud.com/library/centos:7.3

在这个地址中,

  • 域名:tenant0202.hub-ark-hn.jdcloud.com
  • 项目:library
  • 镜像:centos
  • 版本:7.3

2.镜像类型

1)概述

关于镜像类型,分为两类,分别:

基础镜像: 一般指原生的Centos 操作系统,个人可以推送到镜像广场管理和维护

编译镜像:一般指在基础镜像上安装了编译需要的软件,例如(maven jdk gcc等)编译需要的环境镜像,个人可以推送到镜像广场管理和维护

2)默认

推送到镜像广场的镜像类型,默认为基础镜像

3)修改镜像类型

操作如下:镜像广场--->选中左侧服务树指定产品线,点击右边页面中的指定项目-->进入镜像仓库分页,点击指定镜像仓库名称–>进入镜像详情页,点击 镜像类型 旁边的编辑按钮。若没有编辑权限,请查看镜像广场权限

4)与 编译构建 的关系

新建构建中的“构建镜像”即为镜像广场中的“编译镜像”

制作镜像

1.安装docker

# CentOS
yum install docker

2.启动docker服务

systemctl start docker

3.生成Dockerfile

# 若 基础镜像 为自定义项目中的,那么,FROM 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 若 基础镜像 为官方项目中的,那么,FROM tenant0202.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 示例
FROM tenant0202.hub-ark-hn.jdcloud.com/library/centos:7.3
RUN yum -y install centos-release-gluster41 && yum -y install glusterfs-server
  • 也可选择手动拉取镜像到本地,详见 拉取镜像广场中的镜像
  • 官方项目中,library为编译镜像
  • Dockerfile的编写可参考官方项目中的镜像的Dockerfile,查看方法如下:菜单-->镜像广场-->官方项目-->点击项目中某镜像,进入到镜像详情页面-->指定版本,点击“查看DockerFile”

4.构建docker镜像

# 可包含域名信息,也可不包含域名信息
# 不包含域名信息  docker build  -t {镜像名}:{版本}  .
# 示例
docker build  -t glusterfs:4.1.5  .
# 包含域名信息    docker build  -t {域名}/{项目名}/{镜像名}:{版本}  .
# 若 基础镜像 为自定义项目中的,那么,域名为 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 若 基础镜像 为官方项目中的,那么,域名为 tenant0202.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 示例
docker build  -t 租户名.hub-ark-hn.jdcloud.com/xdata-op/glusterfs:4.1.5  .

5.查看docker镜像

docker images

6.运行docker镜像

# 若 基础镜像 为自定义项目中的,那么,域名为 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 若 基础镜像 为官方项目中的,那么,域名为 tenant0202.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
示例
# 编译镜像
docker run -ti tenant0202.hub-ark-hn.jdcloud.com/library/centos:7.3 /bin/bash

7.查询正在运行的docker容器

docker ps

8.其他常用命令

#登录docker镜像
docker exec -it a6779e27ca13 bash
#停止docker镜像
docker stop a6779e27ca13
#删除docker 容器
docker rm a6779e27ca13

推送镜像到镜像广场

1.【前提】在 镜像广场 页面中,有权限向项目中推送镜像

  • 谁有权限向项目中推送镜像:项目所关联的产品线运维、产品线开发、项目成员中系统的运维
  • 如何新建项目:在镜像广场页面,创建项目。新建的项目为自定义项目。 具体操作如下:菜单-->运维工具-->镜像广场,左侧服务树选中某产品线(此产品线即为项目将要关联的产品线),该产品线的运维角色,可在右侧点击“新建项目”按钮;需填写项目名称、成员,成员为该产品线下的系统,具体权限请详见:镜像广场权限

2.列出本地镜像

docker images

3.后台启动容器,验证配置是否正确

# 若 基础镜像 为自定义项目中的,那么,域名为 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 若 基础镜像 为官方项目中的,那么,域名为 tenant0202.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}
# 示例
# 编译镜像
docker run -ti tenant0202.hub-ark-hn.jdcloud.com/library/centos:7.3 /bin/bash
docker ps

4.登录镜像仓库

docker login -u{用户名} -p{密码} 租户名.hub-ark-hn.jdcloud.com

返回「Login Succeded」即为登录成功。

用户名=DevOps中的用户名,密码=DevOps中的密码

5.标记本地镜像

若build时已包含域名,那么这里无需再进行docker tag

docker tag {镜像名/ID} 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

6.推送本地镜像到镜像广场

docker push 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

拉取镜像广场中的镜像

1.官方项目的镜像

镜像广场-->官方项目 分页-->镜像仓库分页-->镜像详情页,点击版本后面的复制镜像地址

docker pull tenant0202.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

2.自定义项目中的公开镜像仓库

镜像广场-->自定义项目 分页-->镜像仓库分页-->镜像详情页,点击版本后面的复制镜像地址

docker login -u{用户名} -p{密码} 租户名.hub-ark-hn.jdcloud.com
# 拉取镜像
docker pull 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

用户名=DevOps中的用户名,密码=DevOps中的密码

谁有权限拉取自定义项目中的公开镜像仓库中的镜像:租户内的所有人

3.自定义项目中的共享镜像仓库

镜像广场-->自定义项目 分页-->镜像仓库分页-->镜像详情页,点击版本后面的复制镜像地址

# 拉取镜像
docker pull 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

用户名=DevOps中的用户名,密码=DevOps中的密码

谁有权限拉取自定义项目中的共享镜像仓库中的镜像:所有人

4.自定义项目中的私有镜像仓库

选中左侧服务树中的产品线,镜像广场-->自定义项目 分页-->镜像仓库分页-->镜像详情页,点击版本后面的复制镜像地址

docker login -u{用户名} -p{密码} 租户名.hub-ark-hn.jdcloud.com
# 拉取镜像
docker pull 租户名.hub-ark-hn.jdcloud.com/{项目名}/{镜像名}:{版本}

用户名=DevOps中的用户名,密码=DevOps中的密码

谁有权限拉取自定义项目中的私有镜像仓库中的镜像:项目所关联的产品线负责人+产品线运维+产品线开发+项目成员中系统的运维、测试、产品、研发,以及下面应用的运维、开发

权限

1.定义

项目:类似于Harbor中的项目,作为镜像仓库的集合

  • 官方项目:由官方创建并提供官方镜像
  • 自定义项目:产品线运维可在产品线维度创建自己的项目,并且指定项目成员,pull、push镜像到项目。项目成员为该产品线下的系统。

镜像仓库:归属于某个项目,一个项目中有多个镜像仓库,一个镜像仓库中有多个版本

镜像仓库有两个维度:

1)访问权限

  • 公开:租户内所有用户公开
  • 私有:项目成员内公开
  • 共享:租户间所有用户公开

2)镜像类型

基础镜像:作为基础镜像 编译镜像:可用于编译构建时,选择的构建镜像

2.项目权限

新建项目 删除项目 新增/删除/修改项目成员,即选择服务树对应系统 查看
服务树-产品线运维可在自己的产品线维度创建项目 服务树-产品线运维可删除自己产品线关联的项目 服务树-产品线运维 租户内的ALL

3.镜像仓库权限

新建的镜像仓库默认是私有的、基础镜像

查看时,请注意要在左侧服务树中指定产品线

镜像仓库权限 拉取镜像 修改访问权限(公开/私有/共享) 修改镜像类型(基础/编译) 查看 修改描述 删除 查看 可以在编译构建时选择
项目:官方 镜像仓库:公开 ALL 无需用户名密码 不涉及 不涉及 不涉及 不涉及 不涉及 ALL ALL
项目:自定义 镜像仓库:公开 租户内的ALL 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 租户内的ALL 租户内的ALL
项目:自定义 镜像仓库:私有 产品线负责人+产品线运维+产品线开发+项目成员中系统的运维、测试、产品、研发,以及下面应用的运维、开发 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 产品线负责人+产品线运维+产品线开发+项目成员中系统的运维、测试、产品、研发,以及下面应用的运维、开发 产品线负责人+产品线运维+产品线开发+项目成员中系统的运维、测试、产品、研发,以及下面应用的运维、开发
项目:自定义 镜像仓库:共享 ALL 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维+产品线开发+项目成员中系统的运维 产品线运维 ALL ALL

4.镜像版本权限

镜像版本权限 查看DockerFile 删除
项目:官方 镜像仓库:公开 ALL 不涉及
项目:自定义 镜像仓库:公开 不涉及 产品线运维+产品线开发+项目成员中系统的运维
项目:自定义 镜像仓库:私有 不涉及 产品线运维+产品线开发+项目成员中系统的运维
项目:自定义 镜像仓库:共享 不涉及 产品线运维+产品线开发+项目成员中系统的运维
更新时间:2019-09-24 15:52:36
文档反馈 docs feedback