摘錄自
[生信技能樹(shù)](javascript:void(0);) 跟著jimmy學(xué)docker系列
首先需要復(fù)習(xí)幾個(gè)docker指令:
docker
docker info ## 可以查看目前機(jī)器上面的docker里面有多少容器或者鏡像。
docker version
sudo docker search ubuntu
sudo docker run hello-world
上面代碼下載了一個(gè)鏡像,啟動(dòng)了一個(gè)容器,下面就可以查看它們
docker ps -a ## 查看目前所有沒(méi)有被銷毀的容器進(jìn)程。
docker images -a ## 查看目前所有的本地鏡像
docker volume ls
docker network ls
- 根據(jù)需求下載docker鏡像
在服務(wù)器上,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
的確是有了這個(gè)本地鏡像,現(xiàn)在可以啟動(dòng)該容器來(lái)處理自己的數(shù)據(jù)。
這里需注意,如果你的TAG不是latest,就這么使用

docker run -it romanhaa/xenocell:1.0 /bin/bash
REPOSITORY 后面跟冒號(hào)再跟TAG
- 啟動(dòng)鏡像
[圖片上傳中...(image.png-2db5dc-1590745054311-0)]
首先
可以用交互式命令行進(jìn)入該鏡像:
docker run -it seandavi/lancet /bin/bash
簡(jiǎn)單查看配置還有該容器的路徑,接下來(lái)就可以把本地?cái)?shù)據(jù)盤掛載進(jìn)入進(jìn)行處理。這樣在容器啟動(dòng)后,容器內(nèi)的虛擬電腦會(huì)自動(dòng)創(chuàng)建被添加的目錄。
-v參數(shù)中,冒號(hào) " : " 前面的目錄是宿主機(jī)目錄,后面的目錄是容器內(nèi)目錄。詳見(jiàn):http://blog.csdn.net/magerguo/article/details/72514813
docker run -it -v /Users/jmzeng/tmp:/work_dir seandavi/lancet /bin/bash
----------------- -------------------------
↓ ↓
宿主機(jī)目錄 容器內(nèi)目錄
這樣docker能訪問(wèn)本機(jī)的/Users/jmzeng/tmp的內(nèi)容,同時(shí)對(duì)鏡像容器里面的/work_dir目錄的修改等同于對(duì)本機(jī)的/Users/jmzeng/tmp的修改
- 處理數(shù)據(jù)
軟件示例代碼很簡(jiǎn)單:
lancet --tumor T.bam --normal N.bam --ref ref.fa --reg 22:1-51304566 --num-threads 8 > out.vcf
有趣的是作者制作的鏡像其實(shí)也有錯(cuò)誤,lancet軟件安裝是失敗的,不過(guò)docker的好處是里面可以使用root權(quán)限。
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