安工-天池Docker训练营docker练习赛实践
本学习笔记为阿里云天池龙珠计划Docker训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdocker
一、学习知识点概要
- 创建镜像仓库账号
- docker练习赛实践
二、学习内容
- 打开阿里云容器服务地址为(https://cr.console.aliyun.com)。第一步切换标签页到命名空间,创建地址唯一的命名空间。根据大赛要求选择对应的地域,其他的按照自己需求选择或填写。下一步,选择本地仓库,不建议其他选项,完成创建。点击管理,可查看详情。仓库地址一般使用公网地址即可。
按照页面的指令在本地完成登陆:
export DOCKER_REGISTRY= your_registry_url
(注意这里your_registry_url最后字段结尾,不能多不能少E.g registry.cn-shanghai.aliyuncs.com/xxxx/xxxx)
docker login $DOCKER_REGISTRY
–username your_username
–password your_password
- 这里以GPU版docker 练习赛中的练习一为例来构建镜像并提交: 首先我们写一个main.py,实现读取/tcdata下的数据,计算a*b 生成result.npy文件
#main.py
import os
import numpy as np
import torch
device = torch.device(“cuda”)
data_dir = ‘/tcdata’
a = np.load(os.path(data_dir,a.npy))
b = np.load(os.path(data_dir,b.npy))
a = torch.from_numpy(a).to(device)
b = torch.from_numpy(b).to(device)
c = torch.matmul(a,b).cpu()
print©
np.save(“result.npy”, c)
- 编写入口文件run.sh
#bin/bash
#打印GPU信息
nvidia-smi
#执行math.py
python3 math.py
- 然后编写Dockerfile 用于打包main.py和运行环境为镜像
Base Images
//从天池基础镜像构建(from的base img 根据自己的需要更换,建议使用天池open list镜像链接:https://tianchi.aliyun.com/forum/postDetail?postId=67720)
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3
//安装python依赖包
RUN pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
//把当前文件夹里的文件构建到镜像的根目录下,并设置为默认工作目录
ADD . /
WORKDIR /
//镜像启动后统一执行 sh run.sh
CMD [“sh”, “run.sh”]
- 命令行执行,构建镜像: tips: 镜像命名根据自己申请的仓库registry来,可以省去tag步骤直接上传,保持本地镜像清洁。
$ docker build -t registry.cn-shanghai.aliyuncs.com/xxxx/test:0.1 .
- 上传镜像仓库
$ docker push registry.cn-shanghai.aliyuncs.com/xxxx/test:0.1
三、学习问题与解答
如果是已经存在的镜像,如何上传呢?
docker tag /[:]
这里的tag不指定就是latest。
四、学习思考与总结
通过对Docker练习赛的实践,更加进一步的了解了docker镜像和仓库,并第一次运用于实践当中去.