閱讀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匯編器_優化工具_高性能計算-阿裏雲