上传镜像

<< 单击以显示目录 >>

上传镜像

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

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

Dockerfile构建镜像。

普通上传镜像。

在线导入镜像。

导入镜像tar包。

导入虚拟机镜像。

通过Dockerfile构建镜像

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

前提条件

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

操作步骤

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

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

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

pro-image1

4.选择镜像构建方式,可选快速构建自定义构建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

环境变量

自定义构建镜像所使用的参数,输入环境变量的

-

安装前执行命令

填写容器部署前所执行的命令,如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 param1param2。

添加启动命令后,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

 

5.(构建方式选择自定义构建时进行)单击编辑Dockerfile,可查看通过交互界面生成的Dockerfile,并可根据需求修改文件。

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

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

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

前提条件

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

操作步骤

步骤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.镜像上传方式选择普通上传镜像

pro-image2

 

9.填写镜像信息。

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

表 6 镜像信息填写说明

参数

设置说明

设置示例

本地镜像

本地终端的镜像名称,格式为“REPOSITORY:TAG”,其中TAG代表版本号。

mysql:5.7.11

镜像仓库

上传至镜像仓库后的镜像名称。

mysql

镜像标签

上传至镜像仓库后的镜像标签。

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.镜像上传方式选择在线导入镜像

pro-image3

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包

pro-image4

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

6.等待镜像上传完成。

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

导入虚拟机镜像

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

前提条件

格式为.iso或者.qcow2。

操作步骤

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

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

3.单击上传新镜像

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

pro-image5

5.填写镜像信息。

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

表8 镜像信息填写说明

参数

设置说明

设置示例

虚拟机镜像仓库

上传至镜像仓库后的镜像名称。

centos

镜像标签

上传至镜像仓库后的镜像标签。

7.6

 

 

6.单击选择文件并从电脑中选择虚拟机镜像文件。

7.等待镜像上传完成。

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

pro-image6