全部產品
Search
文件中心

:前言

更新時間:Jul 06, 2024

BatchCompute 除了支援把軟體直接安裝到 ECS 鏡像,還支援通過 Docker 鏡像部署應用程式。

也可以自訂製作一個 Docker 鏡像,上傳到阿里雲的Container Registry倉庫中或者使用 registry 工具上傳到阿里雲 OSS,然後您可以指定您的作業的任務在這個鏡像中運行。

1. BatchCompute 對 Docker 支援的原理

以 AutoCluster 模式為例,對比VM 方式Docker方式的使用過程。

  • VM 方式。使用者提交作業,每個作業可以有多個任務,每個任務指定一個鏡像(支援 Linux 和 Windows);系統運行任務時,會根據指定的鏡像啟動VM;使用者任務將運行在這個VM上;任務完成後,結果會被上傳到指定的持久化儲存,然後銷毀 VM,準備執行下一個任務。

  • Docker 方式:使用者提交作業運行任務時,會先啟動 VM 來支援 Docker 的系統鏡像(如:支援 Docker 的 Ubuntu);然後從Container Registry倉庫或者 OSS 下載指定的 Docker 鏡像,並在該 VM 中啟動,使用者的任務將在該 Docker 容器內運行;任務完成後,結果上傳到指定的持久化儲存,然後銷毀 VM,準備執行下一個任務。

說明

目前一個 VM,只支援運行一個 Docker 鏡像。

# 使用VM:
---
  |-- job
       |-- task
             |-- VM (使用者指定的 VM,支援 Windows 和 Linux)
                  |-- program (使用者程式)

# 使用Docker模式:
---
  |-- job
       |-- task
             |-- VM (支援 docker 的 Ubuntu)
                 |-- Docker-Container(使用者指定的 Docker 的容器鏡像)
                      |-- program (使用者程式)

2. 使用Docker和不使用Docker區別

-

不使用 Docker

使用 Docker

使用鏡像

指定 ECS 鏡像 ID

指定支援 Docker Container 的 ECS 鏡像 ID(例如,官網提供的 Ubuntu),還需指定自訂 Docker 鏡像。

程式運行平台

支援 Windows 和 Linux

支援 Linux

本地調試

不支援本地調試

鏡像在本地製作,支援本地調試

3. 安裝 Docker

A) 請到 Docker 官網下載安裝

  • 在 Windows/Mac 上安裝 toolbox

安裝完成後會有2個捷徑:

說明

Kitematic: 用來管理 docker container 的圖形化介面 Docker Quickstart Terminal: 可以快速啟動 docker 命令列介面。

說明

注意: 確保安裝的 Docker 版本 >= 1.10, 否則會有相容問題。

B) 配置加速器

使用加速器,將會提升您在中國擷取 Docker 官方鏡像的速度:阿里雲Container Service開發人員平台

4. 使用 Docker 注意事項

  • Docker container 運行時,使用者為 root,path 環境變數預設為:/sbin:/usr/sbin:/bin:/usr/bin。注意沒有/usr/local/bin

  • PWD 環境變數如果沒有設定,則為’/batchcompute/workdir’。使用者的程式包始終會被解壓到 /batchcompute/workdir。

  • 使用 ClusterID 提交任務時, 因為 Docker registry 一旦啟動後就不停止,因此提交到一個 cluster 中的所有 job,其 BATCH_COMPUTE_DOCKER_REGISTRY_OSS_PATH 必須相同。

  • 目前 InputMapping,OutputMapping 不能同時掛載到同一個目錄。

  • BatchCompute 啟動 Docker 容器時使用 —privileged=false 模式,所以不允許在docker 容器中啟動 docker 容器。