docker使用

2020-05-29  本文已影响0人  提提_TI

摘录自
[生信技能树](javascript:void(0);) 跟着jimmy学docker系列

首先需要复习几个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
的确是有了这个本地镜像,现在可以启动该容器来处理自己的数据。

这里需注意,如果你的TAG不是latest,就这么使用


image.png

docker run -it romanhaa/xenocell:1.0 /bin/bash
REPOSITORY 后面跟冒号再跟TAG

  1. 启动镜像

[图片上传中...(image.png-2db5dc-1590745054311-0)]

首先

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

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的修改

  1. 处理数据

软件示例代码很简单:

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

上一篇下一篇

猜你喜欢

热点阅读