docker入门使用-linux下的docker入门命令

背景:在linux系统上使用docker创建镜像,使用容器。

在日常的生信分析过程中,环境的配置往往比数据分析本身还令人头疼。conda的使用方便了R和python包的下载,但它也仅仅是一个包的管理软件。有没有一种方法可以完全复刻别人服务器上所有的环境,包括所有已下载的R、python包、.bashrc配置以及常用的生信软件(R软件、python软件、fastp软件等),甚至包括别人所创建的所有conda环境,实现服务器上所有东西的复刻呢?
docker就能实现这样的需求,docker的主机服务器用于存储用户们创建的镜像,而镜像就是配置好的服务器环境
对于一个镜像来说,复刻是成百上千次的,每次复刻就是创建一个容器,容器就是复刻镜像的载体

这里基于我自己的需求记录docker的使用。我要想使用的是宏基因组的差异分析lefse,然而由于水平有限,这个软件的conda和其他方法我都配置不好,于是准备复刻别人配置好的整体环境。

  • docker search
    docker search命令用于搜索镜像。例如搜索lefse的镜像docker search lefse

    lefse.png

    可以看到这里有好几个镜像,NAME是它们完整的名字,然而第一个镜像一看就比其他镜像更加专业,其次看STARS,第一个镜像有4个“点赞收藏”,所以我选择第一个镜像使用。

  • docker pull
    docker pull 命令用于下载镜像。例如下载lefse镜像docker pull biobakery/lefse。注意,这里要使用上一步搜索出来的完整镜像名字。

  • docker images
    docker images直接使用,可以查看下载到主机的所有镜像。

    images.png

  • docker run
    上图中第一列是镜像名字,第二列是标签名字,第三列是镜像ID,第四列是下载日期,第五列是镜像大小。
    启动容器的命令是docker run -it 镜像名字/镜像ID
    这里有很多探索的地方,作为初学者随便试了一下(基于我自己的理解)。
    首先使用镜像名字启动(复刻)镜像,启动完镜像的环境被称为一个容器。

    run.png

启动完成后,可以看到仿佛进入了一个陌生人的服务器。其中用户名由我自己变成了叫作linuxbrew的,其次可以看到这个终端显示没有了颜色,基于conda安装与使用-miniconda管理R与Python环境-soft02 - 简书 更改这里的.bashrc,再source .bashrc,发现终端的显示方式已被更改。

run.png

仔细看看这个终端显示的日期,发现是早上8点过,而现在是北京时间下午6点过,结合微薄的地理知识可以推测这个服务器应该是在西方。

言归正传,我是准备做lefse的,那么我登录到这个服务器上有没有lefse呢?
检测一下,使用lefse命令:

lefse.png

可以看到没有lefse,这是因为什么呢?
debug发现因为我函数用错了。
debug.png

好了,环境应该没有什么问题,直接使用别人的服务器配置就可以什么都不做,接下来只需要导入数据。
ll发现目前home目录下是空空如也,那么如何将原来主机中的数据导入或者连接到这台虚拟服务器上呢?

  • docker run -it -v
    -v参数能够实现主机到虚拟机的数据连接,这里我将我的数据连接到虚拟容器中。
    在虚拟容器中pwd,得到这个虚拟容器的地址:
    pwd.png

    而我的数据地址则是在原本的主机中pwd
    pwd.png

    使用-v参数将两者链接:
    usage:-v 原始主机中的数据地址:虚拟容器中的数据地址
docker run -it -v /mnt/home/yanyt/02.workflow/03.metagenomics_yyt01/02.test:/home/linuxbrew/share biobakery/lefse

注意,这样是重新打开了一个容器,也就是又进入了一个新的虚拟容器中:


ll.png

可以看到新的服务器它这个.bashrc没有更改,所以终端显示没有颜色,在home目录中出现了一个新的文件夹share,进入此文件夹ll,可以看到我原本主机中的数据全部到了这个地方。
那么环境和数据都有了,就可以具体lefse分析了。


debug.png

文件没有权限,这是因为对于虚拟容器来讲,他是一个外人(很外的人),所以需要回到主机,将权限打开,我直接设置为777,所有人都能访问并修改我的文件夹:
777.png

回到虚拟容器,发现文件夹权限变成了777,这说明主机上对数据做的修改,会直接作用到虚拟容器中:

777.png

继续运行lefse命令:
lefse.png

命令没有问题,可以直接使用,且这里对文件做了修改,回到主机,发现主机上的文件也直接被修改,这说明虚拟机和主机之间的操作是一致的,所以要格外小心,避免误操作。
no_results.png

那么所有的分析完成以后,如何处理docker容器呢?

  • docker ps
    使用docker ps命令可以查看所有正在运行的容器:

    ps.png

  • exit
    直接在虚拟容器中输入exit并回车,就可以直接退出容器,注意,此时容器将直接被删除。
    在第一个容器中试验exit并回车,回到主机使用docker ps命令发现已经没有了第一个容器:

    exit.png

  • ctr P+ctr Q
    使用ctr P+ctr Q可以从虚拟容器返回到主机页面,但此时容器仍然存在,还可以再次进入。
    在第二个容器中使用ctr P+ctr Q回到主机,使用docker ps发现容器仍然存在:

    P_Q

    由于这个容器我要反复使用,所以暂时不将它删除,以后每次使用lefse我将重启它。

  • docker start
    docker start 容器名字将重启并进入一个虚拟容器。

  • docker run -it -d
    -d参数实现后台运行容器,界面仍然停留在主机不进入容器。docker attach 容器名字将进入一个在后台运行的容器。

  • docker stop/kill
    使用ctr P+ctr Q退出容器时,容器并未被删除,还可以再次进入。而退出后使用docker stop/kill 容器名字,将永久删除容器,下次再使用的话就得重新运行docker run -it 容器名字,且登陆上去将是空空如也的新虚拟容器。

总结:docker的使用浅探究到这里,那么之后只要有现成的docker镜像,就“懒得”再配置环境。反之,如果厉害可以自己配置镜像给别人使用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容