docker的安装和使用#
[!NOTE]
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何其他计算机上,也可以实现虚拟化。
借助 Docker 可将 GIS 软件及其依赖环境封装成容器,实现快速部署,像 GeoServer、QGIS 等软件都能轻松在不同环境中运行。
多个 GIS 相关服务还能通过 Docker 容器进行组合,构建复杂 GIS 应用系统。而且容器的隔离特性保障了 GIS 应用的稳定性和独立性,避免环境冲突,提高开发、测试和运维效率 。
注意:数信云服务器已经预装了docker,所以不需要再自己进行安装!
1.安装docker
# 卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt-get updatesudo apt-get install ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker引擎
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证docker成功安装
systemcetl status docker

2.常用Docker命令
# 查看运行的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 启动已停止的容器
docker start XXX
# 进入运行中的容器
docker exec -it XXX bash
# 停止容器
docker stop XXX
# 删除容器
docker rm XXX
# 查看镜像
docker images
# 删除镜像
docker rmi XXX
# 查看容器资源使用情况
docker stats
3.Docker生物信息之pyscenic
源自官网教程https://pyscenic.readthedocs.io/en/latest/installation.html
首先拉取pyscenic的官方镜像,格式:docker pull XXX
# pySCENIC CLI version (recommended).
docker pull aertslab/pyscenic:0.12.1
(由于docker是外网资源,所以常常会遇到镜像拉取失败的问题,因为服务器无法连接外网,联系驻群技术即可)
(数信云服务器预装了很多docker镜像,可以通过docker images查看,就不需要再次拉取了)
开始运行pyscenic——建基因调控网络 (GRN)
docker run -it --rm \
-v /data:/data \
aertslab/pyscenic:0.12.1 pyscenic grn \
--num_workers 6 \
-o /data/expr_mat.adjacencies.tsv \
/data/expr_mat.tsv \
/data/allTFs_hg38.txt
解释:
docker run -it --rm→ 启动一个临时 Docker 容器,运行结束后自动删除。-v /data:/data→ 把宿主机的/data目录挂载到容器的/data,输入输出文件都能直接共享。aertslab/pyscenic:0.12.1→ 使用 Aerts 实验室发布的 PySCENIC 版本 0.12.1 镜像。pyscenic grn→ 执行 GRN 步骤,推断转录因子 (TF) 与基因的关系。--num_workers 6→ 使用 6 个线程并行加速。-o /data/expr_mat.adjacencies.tsv→ 输出文件,保存候选 TF-基因调控关系(邻接表)。/data/expr_mat.tsv→ 输入的表达矩阵(基因 × 细胞)。/data/allTFs_hg38.txt→ 人类转录因子列表(参考 hg38)。
👉 输出: /data/expr_mat.adjacencies.tsv,包含潜在 TF → 基因关系。
开始运行pyscenic——结合 motif 注释,筛选 regulons (CTX)
docker run -it --rm \
-v /data:/data \
aertslab/pyscenic:0.12.1 pyscenic ctx \
/data/expr_mat.adjacencies.tsv \
/data/hg19-tss-centered-5kb-7species.mc9nr.genes_vs_motifs.rankings.feather \
/data/hg19-tss-centered-10kb-7species.mc9nr.genes_vs_motifs.rankings.feather \
--annotations_fname /data/motifs-v9-nr.hgnc-m0.001-o0.0.tbl \
--expression_mtx_fname /data/expr_mat.tsv \
--mode "custom_multiprocessing" \
--output /data/regulons.csv \
--num_workers 6
解释:
docker run -it --rm→ 运行临时容器,用完即删。-v /data:/data→ 把宿主机/data挂载到容器的/data,方便读写文件。aertslab/pyscenic:0.12.1→ 使用 PySCENIC 镜像。pyscenic ctx→ 执行 CTX 步骤,结合 motif 数据验证 TF 调控的合理性。/data/expr_mat.adjacencies.tsv→ 输入,上一步生成的候选 TF-基因关系。...rankings.feather→ motif 排名数据库(不同窗口大小,比如 5kb, 10kb),用于匹配 TF motif。--annotations_fname ...tbl→ motif 注释表(告诉你 motif 属于哪个 TF)。--expression_mtx_fname /data/expr_mat.tsv→ 输入原始表达矩阵,用于进一步过滤。--mode "custom_multiprocessing"→ 使用并行模式计算。--output /data/regulons.csv→ 输出文件,保存 regulons(TF 及其可靠靶基因集合)。--num_workers 6→ 并行线程数 = 6。
👉 输出: /data/regulons.csv,每个 regulon = TF + 它的靶基因。
开始运行pyscenic——计算 regulon 在细胞中的活性 (AUCell)
docker run -it --rm \
-v /data:/data \
aertslab/pyscenic:0.12.1 pyscenic aucell \
/data/expr_mat.tsv \
/data/regulons.csv \
-o /data/auc_mtx.csv \
--num_workers 6
解释:
docker run -it --rm→ 临时容器运行,执行完即删。-v /data:/data→ 把宿主机/data挂载到容器的/data。aertslab/pyscenic:0.12.1→ 使用 PySCENIC 镜像。pyscenic aucell→ 执行 AUCell 步骤,计算 regulon 在每个细胞里的活性分数。/data/expr_mat.tsv→ 输入表达矩阵。/data/regulons.csv→ 输入 regulons 文件(上一步的结果)。-o /data/auc_mtx.csv→ 输出活性矩阵(细胞 × regulon)。--num_workers 6→ 并行计算。
👉 输出: /data/auc_mtx.csv,表示每个细胞中各个 regulon 的活性水平。