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-阿裏雲