docker的安装和使用

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

image-20250829160835417

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 的活性水平。