平台预置镜像仅可以满足部分通用场景下的镜像需求,无法满足所有用户的镜像需求,为满足用户特定场景需求,平台支持用户通过 Dockerfile 、 仓库地址 、 镜像tar包 以及 docker push 多种构建方式,自定义构建和管理镜像,满足后续其他模块的使用需求。
前提条件
- 用户登录平台,打开”镜像管理——>自定义镜像“目录;
- 首次使用用户需创建个人的镜像空间,用以存储个人的镜像数据,创建要求详见下图:
![]()
操作步骤
通用步骤
开通镜像空间后,允许用户通过Dockerfile、仓库地址、镜像tar包以及docker push方式构建镜像,在构建镜像时,用户需为镜像完善相关信息。
参数 | 描述 |
| 镜像名称 |
|
| 镜像标签 |
|
| 使用场景 |
|
| 操作系统 |
|
| 框架 |
|
| 加速卡类型 |
|
| 访问方式 |
|
| 创建方式 |
|
| 镜像描述 |
|
构建镜像
Dockerfile构建镜像
1、Dockerfile是一个文本文件,通过一系列的指令,进行自动化构建Docker镜像,通过Dockerfile,用户可以定义构建镜像所需的步骤、依赖关系和配置项,确保镜像构建的准确性。
2、关于Dockerfile的语法使用详见官方文档。
3、用户仅需在自定义镜像——>页面上传的创建页面选择Dockerfile的构建方式,并按照构建要求编写Dockerfile文件即可。
![]()
下述为通过Dockerfile构建的示例:
FROM registry.cnbita.com:5000/wuyiqiang/python3.9_cuda11.3_pytorch1.12:v1 # 镜像来源,基础镜像
WORKDIR /app # 设置工作路径
RUN apt update \ # 安装需求组件
&& apt install vim -y \
&& apt install iproute2 -y \
&& apt install -y openssh-server -y \
&& apt install bind9-host -y
RUN pip install colossalai
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
COPY getIP.sh getIP.sh # 将本地文件copy到镜像中,基于设置的工作路径
COPY train.py train.py
CMD ["/bin/bash"] # 镜像启动命令
仓库地址构建镜像
通过镜像仓库地址构建需在构建页面选择镜像地址的构建方式。
![]()
镜像来源为个人空间镜像
若您前期已通过Dockerpush命令将镜像存储至平台个人镜像仓库下,您只需登录镜像仓库,注意, 镜像仓库登录的账号密码是您开通个人空间时的密码 ,不一定是登录平台账号密码。若已忘记可通过重置的方式找回。
1、找回密码:
![]()
![]()
2、登录镜像仓库:
![]()
3、获取镜像地址:
![]()
镜像来源为平台镜像
当您所需构建的镜像为平台镜像时,只需找到平台镜像页面,找到对应的镜像,复制其镜像地址即可;
![]()
镜像来源于境外镜像仓库
平台不支持自动拉取境外镜像仓库镜像,用户若需构建,需自行将镜像拉取至本地后,在通过Dockerfile或tar包方式构建。
tar包构建镜像
镜像tar包是容器镜像的一种打包形式,它将容器镜像的所有内容(包括操作系统、应用程序及其依赖的库等)打包成一个tar格式的文件。具体操作步骤:
a、定位到自定义镜像页面,点击创建镜像——>页面上传,选择镜像tar包;
b、选择tar包存储的存储地址,系统将自动拉取并构建镜像;
![]()
客户端上传(平台镜像仓库)
平台内置镜像仓库,支持用户通过Docker命令将镜像推送至平台镜像仓库个人空间中,通常情况下镜像推送完成后自定义镜像列表将自动更新推送到平台镜像仓库个人空间下的新镜像信息。如长时间等待后镜像列表仍未能成功更新推送的镜像信息,可在镜像仓库中获取镜像仓库地址,然后通过仓库地址添加的方式在页面中同步构建镜像。具体操作步骤:
a、打开自定义镜像页面,点击创建镜像按钮,选择客户端上传,打开客户端上传镜像操作指南;
b、用户需在本机安装Docker环境,具体安装步骤可见Windows、Linux、Mac。
c、安装完成后,用户可通过命令行的方式登录,并将本地镜像推送至个人空间中;
d、推送成功后,可通过仓库地址方式将镜像同步至自定义镜像页面,支持后续使用,具体操作可见来源为个人空间镜像。
![]()
![]()