解决你软件安装疑难杂症的docker

Docker原本是一个IT界很流行的工具,但是我们生信分析的工作和IT的有些类似嘛,所以很多生信软件也被打包上传到了docker仓库,方便我们下载。Docker类似于conda、pip,可以方便用户快捷省事的安装需要的软件;但是docker和conda又有些不同,docker比conda更全面且笨重一点,我们可以在centos系统里用docker安装ubuntu系统。老牛推荐docker的原因不是因为它能在centos里安装ubuntu,而是针对CNVnator这种软件安装钉子户,使用conda安装上会依旧 各种错误,可以看到哪怕conda解决了95%的问题,但还是不够完美。

Docker的思想来自于集装箱,这个集装箱可以装下某个软件运行所需要的所有东西,我们可以把这个集装箱发往世界各地,任何地方收到这个集装箱的人都可以完好的运行这软件,不再有软件依赖的问题。

简单的说docker的使用场景是,我们想安装一个软件可以从docker公共仓库里下载下来,并且不需要安装直接使用;或者我有一个自己安装好的软件也可以上传到docker公共仓库里方便别人下载直接使用。要完成以上功能,首先我们要在系统里安装好docker(centos系统演示):

1)配置yum

vim /etc/yum.repos.d/docker.repo

[dockerrepo]

name=Docker Repository

baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/repo/centos7

enabled=1

gpgcheck=1

gpgkey=https://mirrors.tuna.tsinghua.edu.cn/docker/yum/gpg

建立好以上文档后,运行:

yum makecache

2)yum安装docker

yum install –y docker-engine

3)启动docker和测试

systemctl start docker.service

(servicedockerstart)

docker version

docker run hello-world

在运行完最后一条命令后,命令行显示如下,首先docker会检测本地有没有一个叫hello-world的images,因为我们是第一次使用,所以检测到没有,然后公共仓库里下载最新的hello-world镜像,下载完成后建立容器运行。

Docker有三个基本的组成部分:docker images、docker containers和docker registries。docker images的概念类似于一个光盘镜像,是静态的不可被改写的;docker containers是对images动态的使用,是可读可写的,image必须加载到container上才可以发挥作用;docker registries是保存images的公共仓库。

在日常使用中,我们要先在官方仓库里检索相关镜像,检索地址如下:

https://hub.docker.com/

老牛输入CNVnator检索到共有11个镜像,选择人数最多的一个,根据里面的提示pull下镜像。

由于官方服务器在国外,所以国内下载的会经常遇到失败,这时有三种方法解决:1.多试几次下载,有可能会成功;2.换一个镜像下载,当然也要从对方上传的时间来判断软件版本的问题,如果版本太老可以考虑放弃;3.采用国内镜像源,下载速度快,但是生信类软件不多,比如CNVnator这类软件可能没有相关镜像。

针对CNVnator老牛在尝试了几个镜像后终于有一个成功下载,docker里软件的运行需要docker run命令+镜像+软件命令,例如:

Docker run halllab/cnvnator XXX

我们上面说到镜像是不可被改写的,我们通过docker run生成的其实是container容器,如果我们对容器进行了修改,也可以将容器生成镜像方便以后使用:

docker commit aaa bbb #将运行中的aaa容器转换为名为bbb的镜像

其他常用命令如:

docker logs #查看容器的日志

docker images #查看所有的镜像

docker ps #查看容器运行状态

docker info #查看docker基本信息

docker start xxx #启动容器

docker stop xxx #停止容器

docker kill xxx #关闭容器

以上只是docker的初步认识和基本使用,老牛也在持续不断的学习,所以本篇只是对docker的初步入门,对于生信分析工作来讲以上足以应付使用。如果同学用的是ubuntu,或者同学有造福人类的觉悟想把镜像提交到官方仓库,那么老牛希望该同学是一个有自学能力可以解决问题的人,同时欢迎同学把技术相关经历投稿到我们生信草堂,当然,任何方面的技术学习都可以写成文章投稿到我们。2018年起始任何一篇刊登的推文都有一百元奖励哦,阅览量超过1000次还有额外300元奖励。时光易逝,我们有时想要赶着时间去证明自己的独特,但是证明自己强大才是最好的独特,把自己的技术和思想写下来,磨炼自己,同时赚了钱犒劳下自己,这样的人生岂不多了一份快哉!

转自生信草堂

生信草堂

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月24日
下一篇 2018年1月24日

相关推荐