上传镜像

镜像仓库用来存储和管理镜像,可以把系统作为镜像仓库,上传镜像到系统,或者直接在系统上从源代码构建Docker镜像。

上传镜像有以下五种方式:

  • Dockerfile构建镜像。

  • 普通上传镜像。

  • 在线导入镜像。

  • 导入镜像tar包。

  • 导入虚拟机镜像。

通过Dockerfile构建镜像

可编写Dockerfile文件构建镜像并上传至系统镜像仓库,通过Dockerfile构建的镜像可保存对应的Dockerfile,在镜像仓库的详情页Dockerfile标签页查看Dockerfile内容。

前提条件

  • 已编写Dockerfile,并已打包为tar格式或者已上传至可通过HTTP匿名访问的URL地址。

  • 以项目管理员登录管理平台。

操作步骤

  1. 在左侧导航树中选择“镜像管理”。

  2. 单击“Dockerfile构建镜像”。

  3. 选择镜像构建方式,可选“快速构建”、“自定义构建”、“tar包方式”和“远程URL方式”。

    • 快速构建

      在基础镜像的基础上,通过源代码压缩包构建新的镜像。

      表 1 快速构建参数说明

      参数 设置说明 设置示例
      镜像 上传至镜像仓库后的镜像名称。 mysql
      镜像标签 上传至镜像仓库后的镜像标签。 5.7.11
      基础镜像名称 构建镜像所使用的基础镜像。可选择nginx或者tomcat。 nginx
      基础镜像标签 所使用的镜像标签。 latest
      源文件 构建镜像所使用的代码源文件,支持.war格式。支持两种来源,其一为:在本地电脑上选择已有的war源文件;其二为:在当前项目下软件包中的.war源文件 -
      添加文件 一次可以同时上传多个.war文件 -
    • 自定义构建

      通过界面交互的方式自定义Dockerfile,并构建镜像。自定义构建时参数包括基础参数和高级参数。请单击“其他配置”设置高级参数。

      表 2 自定义构建基础参数说明

      参数 设置说明 设置示例
      镜像 上传至镜像仓库后的镜像名称。 mysql
      镜像标签 上传至镜像仓库后的镜像标签。 5.7.11
      基础镜像 构建镜像所使用的基础镜像。可使用Docker Hub官方的镜像,格式为镜像名称:镜像标签。 nginx:latest
      环境变量 自定义构建镜像所使用的参数,输入环境变量的key和value值即可,可添加多个环境变量。 -
      安装前执行命令 填写容器部署前所执行的命令,如CMD命令等,支持多条命令。 -
      导入文件(COPY&ADD) 构建镜像所使用的源文件,格式为tar或者tar.gz,支持上传多个文件。
      支持两种来源,其一为:在本地电脑上选择已有的文件;其二为:在当前项目下软件包中的文件。
      同时当选择的文件为压缩包时,可以选择是否解压此文件
      -
      容器内目标路径 源文件复制到容器内的目标路径。
      上传源文件和填写容器内目标路径后,Dockerfile中会增加一条“ADD”命令,该命令的参数“源”和“目标”分别对应添加的源文件和容器内目标路径。
      -
      安装执行命令 部署容器所执行的命令,如RUN命令等,支持多条命令。 -
      入口点(ENTRYPOINT) 配置容器启动后运行的执行程序,支持文本形式和数组形式两种,如command param1 param2或者["executable", "param1", "param2"]。
      设置了入口点后,Dockerfile文件中新增“ENTRYPOINT”命令。
      -

      表 3 自定义构建高级参数说明

      参数 设置说明 设置示例
      维护者信息 该镜像的维护者信息。设置了维护者信息后,Dockerfile文件中新增“MAINTAINER”命令。 example@domain.io
      默认工作目录 设置容器内的工作目录,设置后,其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY 等命令都会在该目录下执行。
      设置了默认工作目录后,Dockerfile中新增“WORKDIR”命令。
      /path
      当前用户 用于指定容器运行时的用户名、UID或者GID,或是两者的组合。如user、user:group、uid、uid:gid、user:gid或者uid:group。
      设置了当前用户后,Dockerfile文件中新增“USER”命令。
      user
      匿名卷 设置容器可以访问的宿主机存储目录。支持文本形式和数组形式两种,如"/my_files"或者["/dir_1", "/dir_2" ..]。
      设置了匿名卷后,Dockerfile文件中新增“VOLUME”命令。
      -
      健康检查 设置容器的健康检查命令。
      设置了健康检查后,Dockerfile文件中新增“HEALTHCHECK”命令。
      -
      服务端口 用来指定端口,使容器内的应用可以通过端口和外界交互。
      设置了服务端口后,Dockerfile中新增“EXPOSE”命令。
      -
      启动命令 用于指定在容器启动时所要执行的命令,如["executable","param1","param2"],["param1","param2"]或者command param1 param2。
      添加启动命令后,Dockerfile中会增加一条“CMD”命令。
      ["param1","param2"]
    • tar包方式

      如果Dockerfile已打包,可选择该方式,选择tar包并导入即可。

      可以是本地tar包,也可以选择软件包中的tar包。

      表 4 tar包方式参数说明

      参数 设置说明 设置示例
      镜像 上传至镜像仓库后的镜像名称。 mysql
      镜像标签 上传至镜像仓库后的镜像标签。 5.7.11
      源文件 .tar.gz或.tar 类型的文件。支持两种来源,其一为:在本地电脑上选择已有的文件;其二为:在当前项目下软件包中的文件 5.7.11
    • 远程URL方式

      指定一个可通过HTTP匿名访问并包含Dockerfile的Git仓库地址,如:https//github.com/example/docker.git,或者指定一个包含Dockerfile的tar包URL。

      表 5 远程URL方式构建参数说明

      参数 设置说明 设置示例
      镜像 上传至镜像仓库后的镜像名称。 mysql
      镜像标签 上传至镜像仓库后的镜像标签。 5.7.11
  4. (构建方式选择“自定义构建”时进行)单击“编辑Dockerfile”,可查看通过交互界面生成的Dockerfile,并可根据需求修改文件。

  5. 单击“立即构建”,并等待上传完成,同时也可在任务列表中取消镜像上传。

普通上传镜像(通过本地镜像仓库上传)

如果本地客户端中已有镜像,可将本地镜像仓库中的镜像上传至系统镜像仓库。

前提条件

  • 本地终端已存在需要上传的镜像。

  • 以项目管理员登录管理平台。

操作步骤

步骤1~3为使用本地终端首次上传镜像时需要的操作,如果已经配置过,则上传镜像时不需要重复配置。

  1. 登录已安装Docker的本地终端。

  2. 执行以下命令,编辑daemon.json文件。

    sudo vim /etc/docker/daemon.json

    如果文件不存在,则文件被创建。

  3. 在文件中增加如下内容,取消 Docker 本地仓库安全认证。

    {
    
    "insecure-registries" :[" registry_ip:5000"]
    
    }
    

    registry_ip为本地镜像仓库对外访问的IP地址,默认为管理平台的IP地址。

  4. 执行以下命令,重启docker daemon。

    sudo systemctl restart docker

  5. 在管理平台左侧导航树中选择“镜像管理”。

  6. 单击“上传新镜像”。

  7. 镜像上传方式选择“普通上传镜像。”

  8. 填写镜像信息。

    请按照表6填写镜像信息,镜像信息填写完成后,管理平台自动生成镜像上传命令。

    表 6 镜像信息填写说明

    参数 设置说明 设置示例
    本地镜像 本地终端的镜像名称,格式为“REPOSITORY:TAG”,其中TAG代表版本号。 mysql:5.7.11
    镜像仓库 上传至镜像仓库后的镜像名称。 mysql
    镜像标签 上传至镜像仓库后的镜像标签。 5.7.11
  9. 在本地终端执行管理平台自动生成的登录命令,登录容器镜像服务。

    docker login --username当前登录用户名 管理平台IP地址:20404

    • “当前登录名”为登录管理平台的用户名。

    • “管理平台IP地址”为管理平台的登录地址,格式可以为“https:IP地址”或者“IP地址”。

  10. 根据提示输入当前登录用户的用户密码。

    系统回显如下,表示登录成功。

    Login Succeeded

  11. 执行管理平台自动生成的打标签命令,设置镜像标签。

    docker tag mysql:5.7.11 镜像仓库IP地址:20404/projectname/mysql:5.7.11

    “镜像仓库IP地址”为安装时镜像仓库的对外访问IP地址,默认与管理平台IP地址一致。

  12. 执行管理平台自动生成的上传命令,上传镜像。

    docker push 镜像仓库IP地址:20404/projectname/mysql:5.7.11

镜像上传成功后:

  • 在镜像管理页面的显示对应的镜像信息。

  • 上传不同标签的镜像后,镜像详细信息页面的“镜像仓库标签”页签显示所有标签的镜像。

在线导入镜像

可将在线镜像仓库中的镜像导入管理平台,如docker hub镜像仓库中的镜像或者其他第三方公有镜像仓库中的镜像。

前提条件

  • 已获取公有镜像仓库中要导入镜像的镜像信息,包括镜像地址和标签等。

  • 以项目管理员登录管理平台。

操作步骤

  1. 在左侧导航树中选择“镜像管理”。

  2. 单击“上传新镜像”。

  3. 镜像上传方式选择“在线导入镜像”。

  4. 设置镜像导入参数。

    表 7 在线导入镜像参数说明

    参数 设置说明 设置示例
    公有镜像仓库 公有镜像仓库中,导入镜像的镜像地址。
    - 如果为docker hub上的镜像,直接输入镜像名称即可。
    - 如果为其他公有镜像仓库,请输入镜像地址。
    - Docker hub中的镜像: wordpress
    - 其他镜像仓库:daocloud.io/daocloud/dao-wordpress
    公有镜像仓库标签 导入镜像的镜像标签。 latest
    公有镜像仓库认证 对于公有镜像仓库中的公有镜像,无需认证即可导入,如果为私有镜像,则需输入用户名和密码进行认证。 -
    镜像仓库 上传至镜像仓库后的镜像名称。 wordpress
    镜像标签 上传至镜像仓库后的镜像标签。 latest
  5. 等待镜像导入成功。

镜像导入成功后,在镜像管理页面显示该镜像。

导入镜像tar包

如果镜像已通过docker save命令等方式保存为tar格式,可直接通过界面上传至系统镜像仓库。

前提条件

  • 已将镜像保存为tar包,格式为.tar.gz或者.tar。

  • 支持批量导入镜像

  • 以项目管理员登录管理平台。

操作步骤

  1. 在左侧导航树中选择“镜像管理”。

  2. 单击“上传新镜像”。

  3. 镜像上传方式选择“导入镜像tar包”。

  4. 单击“选择文件”并从电脑中选择镜像tar包。

  5. 等待镜像上传完成。

镜像导入成功后,在镜像管理页面显示该镜像。

导入虚拟机镜像

如果是虚拟机镜像,可直接通过界面上传至系统镜像仓库。

前提条件

  • 格式为.iso或者.qcow2。

  • 以项目管理员登录管理平台。

操作步骤

  1. 在左侧导航树中选择“镜像管理”。

  2. 单击“上传新镜像”。

  3. 镜像上传方式选择“导入虚拟机镜像”。

  4. 填写镜像信息。

    请按照表8填写镜像信息,镜像信息填写完成后,管理平台自动生成镜像上传命令。

    表8 镜像信息填写说明

    参数 设置说明 设置示例
    虚拟机镜像仓库 上传至镜像仓库后的镜像名称。 centos
    镜像标签 上传至镜像仓库后的镜像标签。 7.6
  5. 单击“选择文件”并从电脑中选择虚拟机镜像文件。

  6. 等待镜像上传完成。

镜像导入成功后,在镜像管理页面显示该镜像且该镜像有VM标识。

© 2022 MiaoYun Chengdu Yuan Lai Yun Zhi Technologies Inc.            Version: 21.12.3

results matching ""

    No results matching ""