上传镜像

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

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

  • Dockerfile构建镜像。

  • 普通上传镜像。

  • 在线导入镜像。

  • 导入镜像tar包。

  • 导入虚拟机镜像。

通过Dockerfile构建镜像

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

前提条件

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

操作步骤

  1. 以项目用户登录管理平台。

  2. 在左侧导航树中选择镜像管理

  3. 本地Registry页签,单击Dockerfile构建镜像

  4. 选择镜像构建方式,可选快速构建自定义构建tar包方式远程URL方式

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

表 1 快速构建参数说明         
<table width="100%">
        <tr>
            <td width="20%"><strong>参数</strong></td>
            <td width="60%"><strong>设置说明</strong></td>
            <td width="20%"><strong>设置示例</strong></td>
        </tr>
        <tr>
            <td>镜像</td>
            <td>上传至镜像仓库后的镜像名称。</td>
            <td>mysql</td>
        </tr>
        <tr>
            <td>镜像标签</td>
            <td>上传至镜像仓库后的镜像标签。</td>
            <td>5.7.11</td>
        </tr>
        <tr>
            <td>基础镜像名称</td>
            <td>构建镜像所使用的基础镜像。可选择nginx或者tomcat。</td>
            <td>nginx</td>
        </tr>
        <tr>
            <td>基础镜像标签</td>
            <td>所使用的镜像标签。</td>
            <td>latest</td>
        </tr>
        <tr>
            <td>源文件</td>
            <td>构建镜像所使用的代码源文件,支持.war格式。支持以下两种来源:<ul><li>在本地电脑上选择已有的war源文件。</li><li>在当前项目下软件包中的.war源文件。</li></ul></td>
            <td>-</td>
        </tr>
        <tr>
            <td>添加文件</td>
            <td>一次可以同时上传多个.war文件。</td>
            <td>-</td>
        </tr>
</table>  

- 自定义构建

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

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

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

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

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

- tar包方式

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

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

表 4 tar包方式参数说明

<table width="100%">
        <tr>
            <td width="20%"><strong>参数</strong></td>
            <td width="60%"><strong>设置说明</strong></td>
            <td width="20%"><strong>设置示例</strong></td>
        </tr>
        <tr>
            <td>镜像</td>
            <td>上传至镜像仓库后的镜像名称。</td>
            <td>mysql</td>
        </tr>
        <tr>
            <td>镜像标签</td>
            <td>上传至镜像仓库后的镜像标签。</td>
            <td>5.7.11</td>
        </tr>
        <tr>
            <td>源文件</td>
            <td>.tar.gz或.tar 类型的文件。支持以下两种来源:<ul><li>在本地电脑上选择已有的文件。</li><li>在当前项目下软件包中的文件。</li></ul></td>
            <td>5.7.11</td>
        </tr>
</table>

- 远程URL方式

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

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

<table width="100%">
    <tr>
        <td width="20%"><strong>参数</strong></td>
        <td width="60%"><strong>设置说明</strong></td>
        <td width="20%"><strong>设置示例</strong></td>
    </tr>
    <tr>
        <td>镜像</td>
        <td>上传至镜像仓库后的镜像名称。</td>
        <td>mysql</td>
    </tr>
    <tr>
        <td>镜像标签</td>
        <td>上传至镜像仓库后的镜像标签。</td>
        <td>5.7.11</td>
    </tr>
</table>
  1. (构建方式选择自定义构建时进行)单击编辑Dockerfile,可查看通过交互界面生成的Dockerfile,并可根据需求修改文件。

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

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

如果本地客户端中已有镜像,可将本地镜像仓库中的镜像上传至平台镜像仓库或外部镜像仓库。

前提条件

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

操作步骤

步骤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. 本地Registry外部Registry页签,单击上传新镜像

  8. 镜像上传方式选择普通上传镜像

  9. 填写镜像信息。

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

    表 6 镜像信息填写说明

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

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

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

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

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

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

    Login Succeeded

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

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

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

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

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

镜像上传成功后:

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

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

在线导入镜像

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

前提条件

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

操作步骤

  1. 以项目管理员登录管理平台。

  2. 在左侧导航树中选择镜像管理

  3. 本地Registry外部Registry页签,单击上传新镜像

  4. 镜像上传方式选择在线导入镜像

  5. 设置镜像导入参数。

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

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

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

导入镜像tar包

如果镜像已通过docker save命令等方式保存为tar格式,可直接通过界面上传至本地平台镜像仓库或外部镜像仓库。

前提条件

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

  • 支持批量导入镜像。

操作步骤

  1. 以项目管理员登录管理平台。

  2. 在左侧导航树中选择镜像管理

  3. 本地Registry外部Registry页签,单击上传新镜像

  4. 镜像上传方式选择导入镜像tar包

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

  6. 等待镜像上传完成。

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

导入虚拟机镜像

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

前提条件

格式为.iso或者.qcow2。

操作步骤

  1. 以项目管理员登录管理平台。

  2. 在左侧导航树中选择镜像管理

  3. 单击上传新镜像

  4. 镜像上传方式选择导入虚拟机镜像

  5. 填写镜像信息。

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

    表8 镜像信息填写说明

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

  7. 等待镜像上传完成。

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

© 2023 MiaoYun Chengdu Yuan Lai Yun Zhi Technologies Inc.            Version: 2.0.2305.1

results matching ""

    No results matching ""