二docker镜像基本命令

2022-05-04  本文已影响0人  XuningFan

1、列出本地镜像
docker images
2、下载镜像
docker pull ubuntu:latest
其中 ubuntu代表镜像名,latest代表版本号
3、进入镜像
docker run -i -t --rm ubuntu:latest /bin/bash
-t: 在新容器内指定一个伪终端或终端。
-i: 允许对容器内的标准输入 (STDIN) 进行交互。
--rm: 退出终端后自动删除容器
4、搜索镜像
docker search ubuntu
5、修改容器获得镜像
创建镜像一般有两种方式,一种是通过docker pull一个基础镜像,然后通过docker run在镜像中进行各种软件安装。基础步骤如下

  1. 进入镜像
    docker run -i ubuntu:latest -t /bin/bash
  2. 对镜像进行修改,比如安装一个python包,然后新开一个窗口查看该容器ID(exit退出后无法查看该容器ID)
  3. 使用docker ps查看当前容器id,这里为 3ada579fc556
    image.png
  4. 通过命令 docker commit来提交容器副本
    docker commit -m “transvar fixed” -a="fxn" ada579fc556 transvar:v2.0
    此命令根据容器id(ada579fc556),将修改后的容器重新提交为镜像模板(transvar:v2.0),其中
    -m: 提交的描述信息
    -a: 指定镜像作者
    ada579fc556: 容器ID
    transvar:v2.0: 指定要创建的目标镜像名

6、从Dockerfile创建镜像
构建镜像的另外一种方式就是从Dockerfile 构建镜像,具体方法如下:
首先创建Dockerfile文件,然后写入指令来告诉 Docker 如何构建我们的镜像 :

FROM ubuntu:latest
MAINTAINER "Chris Miller" <c.a.miller@wustl.edu>
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && \
    agt-get install \
    build-essential \
    bzip2 \
    cmake \
    default-jre \
    g++ \
    git \
    libbz2-dev \
    liblzma-dev \
    libncurses5 \
    libtbb2 \
    libtbb-dev \
    make \
    ncurses-dev \
    wget \
    xz-utils \
    zlib1g-dev -y \
    perl \
    autoconf \
    automake \
    libcurl4-gnutls-dev \
    libssl-dev \
    libperl-dev \
    libgsl0-dev \
    pigz 

WORKDIR /softs
#htslib
ENV HTSLIB_INSTALL_DIR=/opt/htslib
RUN wget -c https://github.com/samtools/htslib/releases/download/1.3.2/htslib-1.3.2.tar.bz2 && \
    tar --bzip2 -xvf htslib-1.3.2.tar.bz2 && \
    cd /softs/htslib-1.3.2 && \
    ./configure  --enable-plugins --prefix=$HTSLIB_INSTALL_DIR && \
    make && \
    make install && \
    cp $HTSLIB_INSTALL_DIR/lib/libhts.so* /usr/lib/
#sambamba
RUN mkdir /opt/sambamba/ \
    && wget -c https://github.com/lomereiter/sambamba/releases/download/v0.6.4/sambamba_v0.6.4_linux.tar.bz2 \
    && tar --extract --bzip2 --directory=/opt/sambamba --file=sambamba_v0.6.4_linux.tar.bz2 \
    && ln -s /opt/sambamba/sambamba_v0.6.4 /usr/bin/sambamba
   ADD sambamba_merge /usr/bin/
   RUN chmod +x /usr/bin/sambamba_merge
#picard
ADD picard.jar ./
#bedtools
RUN mkdir /opt/bedtools && cd /opt/bedtools && wget  -c https://github.com/arq5x/bedtools2/releases/download/v2.29.2/bedtools.static.binary && \
    chmod +x /opt/bedtools/bedtools.static.binary && \
    ln -s /opt/bedtools/bedtools.static.binary /usr/bin/bedtools
#bwa
RUN mkdir bwa &&\
  cd bwa &&\
  wget https://github.com/lh3/bwa/releases/download/v0.7.17/bwa-0.7.17.tar.bz2 &&\
  tar -xjf bwa-0.7.17.tar.bz2 && \
  rm bwa-0.7.17.tar.bz2 && \
  cd bwa-0.7.17 && \
  make && \
  ln -s /softs/bwa/bwa-0.7.17/bwa /usr/bin/bwa 
#samtools
RUN mkdir samtools && \
  cd samtools && \
  wget -c https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2 && \
  tar -xjf samtools-1.9.tar.bz2 && \
  rm samtools-1.9.tar.bz2 && \
  cd samtools-1.9 && \
  ./configure && \
  make && \
  make install && \
  ln -s /softs/samtools/samtools-1.9/samtools /usr/bin/samtools 
# get bcftools and make /data
RUN mkdir bcftools && \
 wget -c  https://github.com/samtools/bcftools/releases/download/1.10.2/bcftools-1.10.2.tar.bz2 && \
 tar -vxjf bcftools-1.10.2.tar.bz2 -C bcftools --strip-components 1 && \
 rm bcftools-1.10.2.tar.bz2 && \
 cd bcftools && \
 make && \
 make install && \
 ln -s  /softs/bcftools/bcftools /usr/bin/bcftools

FROM: 指定使用哪个镜像源
RUN: 告诉docker 在镜像内执行命令
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像:
docker build -t dnapip:1.0 ./
-t: 指定要创建的目标镜像名
./: Dockerfile 文件所在目录
7、为镜像添加新标签
为ID为fce6b37c3237的镜像添加addtag_test标签:
docker tag fce6b37c3237 transvar:v03

上一篇下一篇

猜你喜欢

热点阅读