跟着jimmy学docker系列之第3讲:为何不创建自己的docker容器呢?

✎✎✎

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

前面我们说到,在docker仓库下载的那个容器是错误的,因为它配置的Ubuntu库文件不够,所以我更新了,形成了自己的容器

jimmy的docker教程——第3讲

为何不创建自己的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 

用commit命令创建镜像

首先下载一个镜像,并以此创建运行容器,这样就可以在容器里面操作它了,整理后就是自己的容器啦。

sudo docker pull ubuntu
docker run -it ubuntu    
## -it运行的容器是交互式的,直接进入了容器里面,进行下面的操作
cat /etc/issue.net 
uname -a 
cat /etc/lsb-release 
apt update && apt upgrade

apt -y install wget curl g++ gcc make cmake  git 
apt -y install bzip2 zip unzip  zlib1g zlib1g-dev libncurses5-dev   
apt -y install libbz2-dev liblzma-dev libssl-dev libbamtools-dev libcurl4-openssl-dev

mkdir -p /opt/
cd /opt/
git clone git://github.com/nygenome/lancet.git
cd lancet
make
ln -s /opt/lancet/lancet /usr/bin/lancet
mkdir /test && cd /test  
mkdir ref 
## https://console.cloud.google.com/storage/browser/genomics-public-data/resources/broad/hg38/v0?pli=1 
## lancet --tumor t1.bam --normal n.bam --ref ref/Homo_sapiens_assembly38.fasta --reg chr3:179230000-179240000 > t1.vcf 
exit

要把它当前状态保存下来,就不必每次都创建一个新容器并再次安装 wget/make这些小工具 先用exit命令退出容器,再运行docker commit命令!

docker images
sudo docker commit -a 'jimmy' -m ‘lancet:v1.0’ a0db8d411f52 jmzeng/lancet:v1.0
docker images

提交镜像: 执行命令提交镜像到本地(这个跟git的其实是一样的,先提交镜像到本地,才能推送到你的远程镜像仓库,一定要注意提交的镜像名格式 帐号/名字:如 jmzeng/lancet,否则无法推送) https://hub.docker.com/u/jmzeng/ 解释参数:

  • -m: 提交的描述信息
  • -a: 指定镜像作者

提交镜像到本地可以看到:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jmzeng/lancet       v1.0                f86af09c0cc8        4 seconds ago       548MB
ubuntu              latest              cd6d8154f1e1        4 weeks ago         84.1MB

这个548MB的就是需要上传到docker hub的, 上传需要登录自己的账号密码,执行命令: docker login 登录你的 hub.docker 帐号 , 登录成功后就可以使用来提交自己自己好的镜像到远程仓库,这个时候就很考验网速啦。

上传完毕就可以去 https://hub.docker.com/u/jmzeng/ 里面查看是否成功。

不过,好像大多数人更推荐直接使用dockerfile来构建镜像,所以我可以把上面的操作转换为 dockerfile 形式的。

使用dockerfile创造lancet镜像

代码也很简单,如下:

## Update the repository sources list
RUN apt update && apt upgrade
RUN apt -y install wget curl g++ gcc make cmake  git 
RUN apt -y install bzip2 zip unzip zlib1g zlib1g-dev libncurses5-dev   
RUN apt -y install libbz2-dev liblzma-dev libssl-dev libbamtools-dev libcurl4-openssl-dev

RUN mkdir -p /opt/
WORKDIR /opt/
RUN git clone git://github.com/nygenome/lancet.git
WORKDIR /opt/lancet
RUN make
RUN ln -s /opt/lancet/lancet /usr/bin/lancet
RUN mkdir -p /test/
WORKDIR /test/
RUN mkdir -p /ref/

参考:

http://wiki.jikexueyuan.com/project/docker/docker-hub/builds.html

https://segmentfault.com/a/1190000012662268

使用自己的镜像

我制作的镜像是:jmzeng/lancet:v1.0 简单运行即可

docker run -it -v  /Users/jmzeng/data/project:/work_dir jmzeng/lancet:v1.0 /bin/bash 
lancet --tumor T.bam --normal N.bam --ref ref.fa --reg 22:1-51304566 --num-threads 2 > out.vcf

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2018-10-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏应兆康的专栏

Docker 简介与安装

Github:https://github.com/yingzk/MyDocker 1. Docker 简介 Docker是一个开源(Github地址: htt...

357120
来自专栏搜云库

Docker Hub 仓库使用,及搭建 Docker Registry

目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中...

53750
来自专栏吴伟祥

rz、sz是Linux同Windows进行ZModem文件传输的命令行工具

要使用rz、sz 命令。需要在系统上安装对应的 lrzsz 软件包 ,要查询是否安装了lrzsz软件包,使用如下命令:

12810
来自专栏实用工具入门教程

如何部署 Docker Compose

Docker是一个很好的工具,用于在软件容器中自动部署Linux应用程序,但要充分利用其潜力,应用程序的每个组件都应该在自己的单独容器中运行。对于具有大量组件的...

5.1K30
来自专栏测试开发架构之路

Docker学习以及镜像制作流程

30930
来自专栏喵了个咪的博客空间

Docker使用命令和技巧

16850
来自专栏田飞雨的专栏

Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

Docker 部署 Django 应用可以通过两种方式来完成:迭代构建和容器互联。以下记录使用容器互联的方式搭建 Django 容器栈的过程。

5.6K20
来自专栏友弟技术工作室

Docker镜像的基本操作

17750
来自专栏搜云库

Docker Hub 仓库使用,及搭建 Docker Registry

目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中...

463100
来自专栏应兆康的专栏

Docker 简介与安装

Github: https://github.com/yingzk/MyDocker

451230

扫码关注云+社区

领取腾讯云代金券