目录

1. 创建镜像仓库

2. 实践

2.1. 准备所需文件

 2.2 执行Dockerfile

2.3 上传至仓库

2.4 Docker在本地使用GPU

3. 以下给出GPU版本的练习题:


1. 创建镜像仓库

这里以申请阿里云容器镜像服务(免费),并创建仓库为例,其他仓库如dockerhub、谷歌、亚马逊、腾讯等详见对应产品说明书。 打开阿里云容器服务地址为 注册开通后

docker搭建jira docker搭建镜像仓库_docker

第一步切换标签页到命名空间,创建地址唯一的命名空间

docker搭建jira docker搭建镜像仓库_docker搭建jira_02

根据大赛要求选择对应的地域,其他的按照自己需求选择或填写

docker搭建jira docker搭建镜像仓库_Dockerfile_03

 下一步,选择本地仓库,不建议其他选项,完成创建。

docker搭建jira docker搭建镜像仓库_docker搭建jira_04

点击管理,可查看详情。

docker搭建jira docker搭建镜像仓库_docker_05

详情页如下,有基本的操作命令,仓库地址一般使用公网地址即可。

按照页面的指令在本地完成登陆:

docker搭建jira docker搭建镜像仓库_docker_06

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

2. 实践

cpu版本练习

2.1. 准备所需文件

新建一个文件夹(例如tianchi_submit_demo)用于存放这次任务镜像所需的文件,文件夹中内容示例,其中hello_world.py中是各位自己的代码部分:

docker搭建jira docker搭建镜像仓库_docker_07

Dockerfile配置文件参考,Dockerfile是固定名称,注意首字母大写。Dockerfile中命令皆大写:

# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /

## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /

## 镜像启动后统一执行 sh run.sh
#CMD ["sh", "run.sh"]
CMD ["python", "hello_world.py"]

 2.2 执行Dockerfile

sudo docker build -t registry.cn-hangzhou.aliyuncs.com/[命名空间]/[镜像名]:2.0 .

执行成功后,能够通过docker images -a在本地找到创建的镜像。

2.3 上传至仓库

sudo docker push registry.cn-hangzhou.aliyuncs.com/[命名空间]/[镜像名]:2.0

可以到阿里云平台上找到上传的镜像。

2.4 Docker在本地使用GPU

docker在新的版本中均已支持直接调用gpu,通过--gpu 指定使用哪个gpu, --gpu all 则是使用所有gpu 前提:请确保已安装了Nvidia对docker的软件支持。

docker run --gpu all registry.cn-hangzhou.aliyuncs.com/[命名空间]/[镜像名]:2.0

调试:

docker run -it --gpu all registry.cn-hangzhou.aliyuncs.com/[命名空间]/[镜像名]:2.0 /bin/bash
#  nvidia-smi 
Thu Jan  7 19:04:55 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  On   | 00000000:00:08.0 Off |                    0 |
| N/A   29C    P0    24W / 250W |      0MiB / 16280MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla P100-PCIE...  On   | 00000000:00:09.0 Off |                    0 |
| N/A   31C    P0    26W / 250W |      0MiB / 16280MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+