阅读837 返回首页    go 阿里云


Docker使用方法__软件镜像_高性能计算-阿里云

专为阿里云GPU物理机定制的深度学习和HPC工具集,在阿里云Docker Hub上发布。

1 阿里云官方Docker Hub地址

https://dev.aliyun.com/search.html

访问hub可以查看阿里云提供的镜像以及缓存的社区公开镜像;进入控制台可以创建和管理自己的docker镜像。

2 新用户

第一次使用阿里云Docker服务,用户需要先注册成为开发者,步骤如下:

打开上面的阿里云Docker Hub,未登陆的,先使用云账号登录,登录/注册在左上角;点击右上角“管理中心”,如下图:

登录

对新用户会弹出去注册开发者的页面:

注册

注册成功之后,点击“进入管理控制台”,下次进入也可以在Docker Hub页面,点击右上角“管理中心”进入。界面如下:

管理中心

选择左侧的“Docker服务”下面的“镜像管理”标签,新用户会提示设置自己的镜像仓库“命名空间”和密码。命名空间是私人镜像的地址前缀。完成设置之后,可以开始使用阿里云Docker仓库。

3 使用 Docker

3.1 docker 仓库地址

阿里云官方docker仓库地址为:

  1. registry.aliyuncs.com(公网)

在GPU物理机上,对应替换为内网地址:

  1. registry-internal.aliyuncs.com(内网)

3.2 运行 Hello World

(GPU物理机预装CentOS 7系统,以下操作仅以CentOS 7为例,且使用root用户)

首先检查机器上安装的docker服务状态:

# docker info

正常会显示当前存储空间等信息。如果出错,请先尝试重启docker服务:

# systemctl restart docker

下一步,使用阿里云账号和之前设定的docker仓库密码,登录阿里云docker仓库:

# docker login registry-internal.aliyuncs.com

运行 Hello World:

# docker run registry-internal.aliyuncs.com/alicloudhpc/hello-world

如果一切正常,说明机器的docker服务运行正常。

3.3 使用深度学习和HPC工具集

需要使用GPU的用户,最好先检查物理机上的GPU状态是否正常,运行:

# nvidia-smi

或者:

# /usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery

列出两块NVidia K40卡为正常。

工具集的发布地址是:

https://dev.aliyun.com/detail.html?repoId=2

列出了包含的软件工具和简介。

docker login之后,可以下载toolkit的镜像到本地:

# docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit

重命名一个短名称:

# docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit

因为需要在docker容器中使用gpu设备,启动docker容器需要设定额外参数。推荐将如下内容保存到一个shell脚本(比如run-toolkit.sh),方便以后运行:

  1. #!/bin/bash
  2. DOCKER_BIN="/usr/bin/docker"
  3. INTERACT="-ti"
  4. #INTERACT="-d"
  5. DATA_VOLUME="/disk1"
  6. DATA_MOUNT_POINT="/disk1"
  7. MEM_LIMIT=96g
  8. set -e
  9. if [ $# -lt 2 ]; then
  10. echo "Usage: $0 image command"
  11. exit -1
  12. else
  13. IMAGE=$1
  14. shift 1
  15. CMD=$@
  16. fi
  17. devices=$(ls -1 /dev | grep nvidia)
  18. dev_param=""
  19. for d in $devices; do
  20. dev_param="$dev_param --device=/dev/$d"
  21. done
  22. time_param='-v /etc/localtime:/etc/localtime:ro'
  23. if [ ! -z "$CUDA_VISIBLE_DEVICES" ]; then
  24. dev_env="-e CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
  25. else
  26. dev_env=""
  27. fi
  28. exec $DOCKER_BIN run
  29. "$INTERACT"
  30. -P
  31. $dev_env
  32. $dev_param
  33. $time_param
  34. -m $MEM_LIMIT
  35. -v $DATA_VOLUME:$DATA_MOUNT_POINT
  36. "$IMAGE"
  37. $CMD

运行脚本,启动toolkit:

  1. # chmod +x run-toolkit.sh
  2. # ./run-toolkit.sh toolkit /bin/bash

成功运行之后,已经进入交互式的docker容器(理解为一个与host隔离的运行环境)中,物理机上的 /disk1 磁盘映射到容器内的 /disk1 文件夹,建议数据只存储到 /disk1 下(如果容器销毁,其他数据不会保留)。

检查GPU工作正常:

# nvidia-smi

检查通过以后,您可以像普通终端一样,运行软件。

3.4 重新进入

在交互式docker容器中,如果您运行 exit,退出docker容器之后,该容器即停止。如果您在容器中修改了 /disk1 以外的内容(比如安装软件),下次还需要继续使用,则不应该运行 run-toolkit.sh 新建容器,而是重启原先的,操作如下:

查询已经停止的容器id:

# docker ps -a

返回结果中,复制下需要重启的容器的 container_id

重启容器:

# docker start container_id

成功则返回一串重复的id

重新进入交互式docker容器:

# docker attatch container_id

4. 使用进阶

4.1 获得更新

如果toolkit发布新的版本,可以重新pull获得更新:

# docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit

重命名一个短名称:

# docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit

4.2 创建私有镜像

访问阿里云docker控制台:

https://cr.console.aliyun.com/#/docker/image/list

可以创建自己的私有镜像(选择本地仓库)。

使用和创建本地镜像的方法,可以参考docker官方文档相关部分:

https://docs.docker.com/userguide/dockerimages

另外有一份中文教程:https://www.docker.org.cn/book/docker.html (有些过时)注意内网环境下,添加或者替换docker仓库的域名。

本地镜像创建完成后,通过docker push上传到阿里云docker仓库:

  1. # docker tag some-image registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
  2. # docker push registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO

最后更新:2016-11-23 17:16:03

  上一篇:go 挂载nfs方法__操作指南_高性能计算-阿里云
  下一篇:go 使用手册__kepler汇编器_优化工具_高性能计算-阿里云