Source: https://bitahub.ustc.edu.cn/help/md/7.6%20%E8%87%AA%E5%AE%9A%E4%B9%89%E9%95%9C%E5%83%8F.html

注意：在平台上创建镜像，常有失败，常见原因如下：


引用docker hub上的镜像，尤其是大镜像，下载需要时间，也有概率出错。平台限一次编译在30分钟内完成，超时将失败，对于编译失败的镜像，并不会多次执行。

引用私有镜像

dockerfile中包含大量的安装命令，如从github拉取代码，常由于github不可达而失败

语法错误

由于平台只能上传dockerfile，所以ADD，COPY命令不可用


30分钟是所有过程的总限时，拉取基础镜像、运行Dockerfile中的其他命令、推送到内网的仓库，要求在30分钟完成。同样的编译过程，再次提交，假如上一次的缓存未被清理（docker自带的机制），是可能能接着进行的。

有两种比较推荐的：


引用平台现有的镜像（在任务详情里可以找到具体的信息，格式如10.11.3.8:5000/user-images/xxxx），然后需要安装的软件和包，都通过镜像站点完成。这样可以减少拉取镜像、获取软件包失败的可能。尤其是你已经在平台有一个镜像了，想进行小幅修改的时候。

自己编译好后，推送到国内站点（如阿里云），然后在dockerfile中直接FROM。注意，如果你的镜像很大，没及时拉取完成，也会导致镜像生成失败。


=====分割线=====

当用户对深度学习环境、开发库有特殊需求时，可自定义镜像。

最多支持每个用户维护三个自定义镜像。在创建训练任务时，系统会根据编程语言和算法框架，优先推荐用户的自定义镜像。镜像管理页面如下图所示，用户可以进行新建镜像、删除、查看等操作。



新建镜像

BitaHub是通过上传Dockerfile文件，在服务器中编译镜像的方式新建镜像，在新建镜像之前需编写Dockerfile文件，文件需符合Dockerfile编码规范。点击 新建镜像 按钮进入新建镜像页面，填写必要的参数、上传Dockerfile文件，然后提交创建。当镜像处于生成中时，列表将显示“生成中”，生成完成后会显示该镜像的地址，生成的镜像将存储在平台的镜像仓库中。



参数填写说明：



镜像名称

必填项。
用于标识镜像的唯一ID，长度要求为1~50个字符（含），支持字母、数字及标点符号，名称不能重复。



编程语言和算法框架

必填项。
选择该镜像的编程语言和算法框架信息。在创建训练任务时，系统会根据编程语言和算法框架，优先列出用户的自定义镜像。



上传Dockerfile

必填项。
Dockerfile文件需符合编码规范。建议在本地环境进行编译测试，确保Dockerfile没问题后再提交。只能上传一个文件。



镜像简介

非必填项。
描述该镜像的作用，最多不能超过10000个字符（含）。