本笔记为阿里云天池龙珠计划Docker训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdocker
- 开通阿里云容器镜像服务
- 创建命名空间
- 创建镜像仓库
- 登录镜像仓库
GPU 版docker 练习赛实践
- 编写mail.py
[root@docker ~]# cd files/
[root@docker files]#
[root@docker files]# pwd
/root/files
[root@docker files]#
[root@docker files]# vim mail.py
[root@docker files]#
[root@docker files]# cat mail.py
#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(c)
np.save("result.npy", c)
- 编写run.sh
[root@docker files]# vim run.sh
[root@docker files]#
[root@docker files]#
[root@docker files]# cat run.sh
#bin/bash
#打印GPU信息
nvidia-smi
#执行math.py
python3 math.py
- 编写dockerfile
[root@docker files]# vim dockerfile.yaml
[root@docker files]#
[root@docker files]# cat dockerfile.yaml
# 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"]
- 构建镜像
[root@docker files]# docker build -f dockerfile.yaml -t registry.cn-guangzhou.aliyuncs.com/chen-namespace/chen-hub:0.1 .
Sending build context to Docker daemon 4.608kB
Step 1/5 : FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3
---> 299bfb9e54db
Step 2/5 : RUN pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
---> Using cache
---> 4b058eaea607
Step 3/5 : ADD . /
---> Using cache
---> b2c6b04cd63a
Step 4/5 : WORKDIR /
---> Using cache
---> 96fff444af92
Step 5/5 : CMD ["sh", "run.sh"]
---> Using cache
---> da714f84ff23
Successfully built da714f84ff23
Successfully tagged registry.cn-guangzhou.aliyuncs.com/chen-namespace/chen-hub:0.1
- 上传镜像仓库
[root@docker files]# docker push registry.cn-guangzhou.aliyuncs.com/chen-namespace/chen-hub:0.1
The push refers to repository [registry.cn-guangzhou.aliyuncs.com/chen-namespace/chen-hub]
f24065c5de28: Pushed
c0d9c2dbb97d: Pushed
0e8b8166d925: Pushed
d891636b0185: Pushed
ff7a309dc81d: Pushed
9113d28ef982: Pushed
ed9a4ac9cc4a: Pushed
16400c4e5e88: Pushed
d908c11b1a82: Pushed
7ccfaa7554e3: Pushed
89ec57aea3bf: Pushed
a0c1e01578b7: Pushed
0.1: digest: sha256:3d742acc12d880a6aa1650567da7cf8ef76cb1f248e25b73f8b318e23e61070d size: 2826