Skip to content

Docker镜像说明 Chinese Specification of SATH Docker Image

Xin Zeng edited this page Jul 9, 2023 · 4 revisions

赛德程序(SATH)简介

赛德是一个旨在实现"制药服务公众,公众参与制药"的智能计算制药开放平台。任何家用普通Windows电脑或者机房的Linux服务器,都可以只需通过下载运行SATH程序,参与到计算制药的任务中。

赛德程序的运行架构如下图所示:

image

赛德镜像部署在Docker Hub中,地址为zengxinzhy/sath,镜像中打包了SATH CLISATH Engine两个程序

赛德镜像的运行

1. 拉取镜像

docker pull zengxinzhy/sath

2. 启动镜像

赛德程序需要以Docker Out Of Docker的形式来运行,运行赛德镜像之前,首先需要为其创建一个空文件夹以保存数据,假设我们创建的文件夹为/tmp/sath。启动赛德镜像的命令为:

docker run -d --name sath-engine -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/sath:/usr/local/sath/data zengxinzhy/sath --data /tmp/sath

-v /var/run/docker.sock:/var/run/docker.sock是Docker Out Of Docker的运行指令

-v /tmp/sath:/usr/local/sath/data就是把这一步创建的那个文件夹挂载给sath容器

--data /tmp/sath是命令行参数,为了告诉sath容器这个文件夹在host的具体地址

3. 启动SATH程序

docker exec <sath_container_id> sath start

其中,<sath_container_id>为赛德容器的container id

运行完该命令后,可用以下命令查看赛德镜像的状态:

docker exec <sath_container_id> sath status

其结果大致如下:

SATH Version: 1.6.0
SATH Engine is running
[map[execId:--N-4PFXZ_9mo5KYtMWbOV]]
Current running jobs:
*****************************************
   --N-4PFXZ_9mo5KYtMWbOV
*****************************************
Use: `sath jobs` to view detail of jobs

若返回的status为running,说明赛德镜像已经成功运行。

赛德镜像启动后,其会根据调度逻辑自动拉取所需的制药算法的镜像,并启动相应的容器

赛德拉取的镜像都有Key为run.sath.author的label,若需获取所有赛德内部拉取的镜像,运行:

docker images --filter label=run.sath.author

赛德程序启动的容器,都带有key为run.sath.starter的label,若需获取所有赛德内部启动的容器,运行:

docker ps --filter label=run.sath.starter

4. 查看任务状态

赛德镜像中,包含了SATH CLI程序,若需查看CLI实用说明,等第二步的赛德程序启动后,运行其相应的container,命令为sath:

docker exec <sath_container_id> sath

使用下面的命令查看当前正在运行的任务:

docker exec <sath_container_id> sath jobs

其结果大致如下所示:

JOB ID     STATUS     PROGRESS   IMAGE                          CONTAINER ID     CREATED          COMPLETED
105063     running    81.71      zengxinzhy/vinadock:latest     a9a496f577c1     2 minutes ago

一旦有job在运行,STATUS不为error,则表示赛德程序已经成功拉起了算法镜像,并且镜像在成功运行

若要跟踪持续展示任务进度,可以加上-f的flag:

docker exec <sath_container_id> sath jobs -f

查看日志

若要查看已完成的所有任务的状态,只需在jobs命令中加上-a的flag:

docker exec <sath_container_id> sath jobs -a

其结果大致如下所示:

JOB ID     STATUS     PROGRESS   IMAGE                          CONTAINER ID     CREATED          COMPLETED
104851     running    4.84       zengxinzhy/vinadock:latest     d4a69cae64e9     9 seconds ago
104840     success    100.00     zengxinzhy/vinadock:latest     b9db1a631e47     7 minutes ago    4 minutes ago

若看到状态为success的任务,说明已经有任务被成功运行完成

若需获取赛德程序stdout的log,只需使用Docker的logs功能:

docker logs <sath_container_id>