查看原文
其他

跟着jimmy学docker系列之第2讲:一个软件一个容器

生信技能树 生信技能树 2022-06-07

    

✎✎✎

    回过头来看当初在生信技能树发布的docker教程已经是2017-07-07的事情了,那是一个好日子👇:

我学会docker啦!希望你也可以学会

    其实当时只是为了写教程而学习和分享,一直没有找到docker的实际应用场合,当初带我入docker坑的胡博士也离开北大毕业去了华为工作。

    而为什么我会重新捡起来docker,可能也是机缘巧合吧,华为生信容器负责人唐博士一直想要合作,我却找不到跟他们的合作接入点,既然是基于docker的合作,我如果都不真正使用它,也的确说不过去,正好最近安装lancet软件各种make报错,缺的系统动态库太多,而它是没有conda源的,这个时候docker是最佳方案。



jimmy的docker教程——第2讲

一个软件一个容器


首先需要复习几个docker指令:

docker
docker info ## 可以查看目前机器上面的docker里面有多少容器或者镜像。
docker version
sudo docker search ubuntu
sudo docker run hello-world 
## 上面代码下载了一个镜像,启动了一个容器,下面就可以查看它们
docker ps -a  ## 查看目前所有没有被销毁的容器进程。
docker images -a ## 查看目前所有的本地镜像 
docker volume ls  
docker network ls
 


1. 根据需求下载docker镜像

在服务器上,GitHub里面的软件(https://github.com/nygenome/lancet)安装非常困难

于是想求助于docker版本:https://hub.docker.com/r/seandavi/lancet/

docker run seandavi/lancet

可以看到:

jmzeng$ docker images -a
REPOSITORY          TAG      IMAGE ID        CREATED             SIZE
seandavi/lancet     latest   1a83521f4492    12 days ago         490MB

的确是有了这个本地镜像,现在可以启动该容器来处理自己的数据。

2. 启动镜像

 

首先

可以用交互式命令行进入该镜像:

docker run -it seandavi/lancet /bin/bash

简单查看配置还有该容器的路径,接下来就可以把本地数据盘挂载进入进行处理。这样在容器启动后,容器内的虚拟电脑会自动创建被添加的目录。

-v参数中,冒号 " : " 前面的目录是宿主机目录,后面的目录是容器内目录。详见:http://blog.csdn.net/magerguo/article/details/72514813

docker run -it -v /Users/jmzeng/tmp:/work_dir seandavi/lancet /bin/bash
                 ----------------- -------------------------
                         ↓                    ↓
                      宿主机目录           容器内目录                   

这样docker能访问本机的/Users/jmzeng/tmp的内容,同时对镜像容器里面的/work_dir目录的修改等同于对本机的/Users/jmzeng/tmp的修改

3. 处理数据

软件示例代码很简单:

lancet --tumor T.bam --normal N.bam --ref ref.fa --reg 22:1-51304566 --num-threads 8 > out.vcf

有趣的是作者制作的镜像其实也有错误,lancet软件安装是失败的,不过docker的好处是里面可以使用root权限

apt-get install libbz2-dev
apt-get install zlib1g-dev
apt-get install liblzma-dev
apt-get install libssl-dev
apt-get install libbamtools-dev
apt-get install libcurl4-openssl-dev


但是为什么jimmy不自己创建一个成功的lancet镜像呢?


当然是还有续集啦!




◆ ◆ ◆  ◆ ◆


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存