自定义镜像打包

我们同样也可以使用自定义的docker镜像作为基础镜像来打包mnist训练镜像,这里我们提供两种方式:

  1. 使用UAI-SDK自定义打包工具
  2. 使用Dockerfile直接打包

使用UAI-SDK自定义打包工具

UAI-SDK自定义打包工具为 uai-sdk/uaitrain_tool/base_tool.py,我们将该工具也放入/data/mnist。

$ cd /data/mnist
$ cp ~/uai-sdk/uaitrain_tool/base_tool.py ./

目前的目录结构如下:

|_ /data/mnist
|  |_ code
|  |_ data
|  |_ base_tool.py

打包Mnist镜像

我们使用base_tool.py 打包mnist镜像,具体的参数说明在自定义镜像打包(Pack)

$ sudo python base_tool.py pack \
			--code_path= \
			--mainfile_path= \
			--uhub_username= \
			--uhub_password= \
			--uhub_registry= \
			--uhub_imagename= \
                        --internal_uhub= \
			--test_data_path= \
			--test_output_path= \
			--train_params= \
			--self_img 

基本参数同打包镜像中的一致,除了ai_arch_v参数(这里也不需要使用--os 和--python_version参数)改为了self_img
我们通过self_img参数来指定基础docker镜像,并基于该镜像打包自己的mnist训练镜像。

打包CPU Mnist训练镜像

$ sudo python base_tool.py pack \
			--code_path=./code/ \
			--mainfile_path=mnist_summary.py \
			--uhub_username= \
			--uhub_password= \
			--uhub_registry=uai_demo \
			--uhub_imagename=tf-mnist-train-cpu \
                        --internal_uhub=true \
			--test_data_path=/data/mnist/data \
			--test_output_path=/data/mnist/output \
			--train_params="--max_step=2000" \
			--self_img=uhub.service.auto-ai.com.cn/uaishare/cpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0

这样可以生成一个镜像名为 tf-mnist-train-cpu:uaitrain 的CPU Mnist训练镜像。

打包GPU Mnist训练镜像

$ sudo python base_tool.py pack \
			--code_path=./code/ \
			--mainfile_path=mnist_summary.py \
			--uhub_username= \
			--uhub_password= \
			--uhub_registry=uai_demo \
			--uhub_imagename=uhub.service.auto-ai.com.cn/uai_demo/tf-mnist-train \
                        --internal_uhub=true \
			--test_data_path=/data/mnist/data \
			--test_output_path=/data/mnist/output \
			--train_params="--max_step=2000" \
			--self_img=uhub.service.auto-ai.com.cn/uaishare/gpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0

这样可以生成一个镜像名为 uhub.service.auto-ai.com.cn/uai_demo/tf-mnist-train:uaitrain 的GPU Mnist训练镜像。

使用Dockerfile直接打包

我们也可以直接使用Dockerfile来打包镜像,我们需要在/data/mnist下面创建一个Dockerfile

$ cd /data/mnist
$ vim mnist-cpu.Dockerfile
$ vim mnist-gpu.Dockerfile

mnist-cpu.Dockerfile

Mnist cpu 的mnist-cpu.Dockerfile如下:

From uhub.auto-ai.com.cn/uaishare/cpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0
ADD ././code/ /data/

Docker镜像build的时候会基于uhub.auto-ai.com.cn/uaishare/cpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0,tensorflow 1.1的CPU基础镜像,然后将code/下面的代码拷贝到docker镜像的/data/目录下

Build mnist-cpu 镜像

我们使用docker build命令来创建cpu镜像

$ sudo docker build -t tf-mnist-train-cpu:uaitrain -f mnist-cpu.Dockerfile .

这样可以生成一个镜像名为 tf-mnist-train-cpu:uaitrain 的CPU Mnist训练镜像。

mnist-gpu.Dockerfile

Mnist cpu 的mnist-gpu.Dockerfile如下:

From uhub.auto-ai.com.cn/uaishare/gpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0
ADD ././code/ /data/

Docker镜像build的时候会基于uhub.auto-ai.com.cn/uaishare/gpu_uaitrain_ubuntu-14.04_python-2.7.6_tensorflow-1.1.0:v1.0,tensorflow 1.1的GPU基础镜像,然后将code/下面的代码拷贝到docker镜像的/data/目录下

Build mnist-gpu 镜像

我们使用docker build命令来创建gpu镜像

$ sudo docker build -t uhub.service.auto-ai.com.cn/uai_demo/tf-mnist-train:uaitrain -f mnist-gpu.Dockerfile .

这样可以生成一个镜像名为 uhub.service.auto-ai.com.cn/uai_demo/tf-mnist-train:uaitrain 的GPU Mnist训练镜像。