<< 单击以显示目录 >> 上传镜像 |
镜像仓库用来存储和管理镜像,可以把系统作为镜像仓库,上传镜像到系统,或者直接在系统上从源代码构建Docker镜像。
上传镜像有以下五种方式:
•Dockerfile构建镜像。
•普通上传镜像。
•在线导入镜像。
•导入镜像tar包。
•导入虚拟机镜像。
可编写Dockerfile文件构建镜像并上传至系统镜像仓库,通过Dockerfile构建的镜像可保存对应的Dockerfile,在镜像仓库的详情 Dockerfile标签 查看Dockerfile内容。
已编写Dockerfile,并已打包为tar格式或者已上传至可通过HTTP匿名访问的URL地址。
1.以项目用户登录管理平台。
2.在左侧导航树中选择镜像管理。
3.在本地Registry页签,单击Dockerfile构建镜像。
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.镜像上传方式选择普通上传镜像。
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.镜像上传方式选择在线导入镜像。
5.设置镜像导入参数。
表 7 在线导入镜像参数说明
参数 |
设置说明 |
设置示例 |
---|---|---|
外部镜像仓库 |
外部镜像仓库中,导入镜像的镜像地址。 •如果为docker hub上的镜像,直接输入镜像名称即可。 •如果为其他公有镜像仓库,请输入镜像地址。 |
•Docker hub中的镜像: wordpress •其他镜像仓库:daocloud.io/daocloud/dao-wordpress |
外部镜像仓库标签 |
导入镜像的镜像标签。 |
latest |
外部镜像仓库认证 |
对于外部镜像仓库中的公有镜像,无需认证即可导入,如果为私有镜像,则需输入用户名和密码进行认证。 |
- |
平台镜像仓库 |
上传至镜像仓库后的镜像名称。 |
wordpress |
平台镜像标签 |
上传至镜像仓库后的镜像标签。 |
latest |
6.等待镜像导入成功。
镜像导入成功后,在镜像管理页面显示该镜像。
如果镜像已通过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标识。