837
阿里云
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仓库地址为:
registry.aliyuncs.com(公网)
在GPU物理机上,对应替换为内网地址:
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),方便以后运行:
#!/bin/bash
DOCKER_BIN="/usr/bin/docker"
INTERACT="-ti"
#INTERACT="-d"
DATA_VOLUME="/disk1"
DATA_MOUNT_POINT="/disk1"
MEM_LIMIT=96g
set -e
if [ $# -lt 2 ]; then
echo "Usage: $0 image command"
exit -1
else
IMAGE=$1
shift 1
CMD=$@
fi
devices=$(ls -1 /dev | grep nvidia)
dev_param=""
for d in $devices; do
dev_param="$dev_param --device=/dev/$d"
done
time_param='-v /etc/localtime:/etc/localtime:ro'
if [ ! -z "$CUDA_VISIBLE_DEVICES" ]; then
dev_env="-e CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
else
dev_env=""
fi
exec $DOCKER_BIN run
"$INTERACT"
-P
$dev_env
$dev_param
$time_param
-m $MEM_LIMIT
-v $DATA_VOLUME:$DATA_MOUNT_POINT
"$IMAGE"
$CMD
运行脚本,启动toolkit:
# chmod +x run-toolkit.sh
# ./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仓库:
# docker tag some-image registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
# docker push registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
最后更新:2016-11-23 17:16:03
上一篇:
挂载nfs方法__操作指南_高性能计算-阿里云
下一篇:
使用手册__kepler汇编器_优化工具_高性能计算-阿里云
短信模板的审核要求是什么?__常见问题_短信服务-阿里云
创建环境变量__API分组相关接口_API_API 网关-阿里云
如何减少或杜绝违法信息出现?__规则FAQ_常见问题_阿里云规则-阿里云
按量计费预告(2017-1月生效)__计费说明_日志服务-阿里云
查询监控行为__监控管理_API 参考_云数据库 RDS 版-阿里云
重置密码__帐号管理_用户指南_云数据库 RDS 版-阿里云
阿里云联手江苏无锡 打造中国首个物联网之城
企业邮箱在电脑PC客户端设置方法__邮箱设置_邮箱常见问题_企业邮箱-阿里云
修改路由器接口规格__高速通道相关接口_API 参考_云服务器 ECS-阿里云
创建大盘__定制大盘_用户指南_业务实时监控服务 ARMS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云