美文网首页
二docker镜像基本命令

二docker镜像基本命令

作者: XuningFan | 来源:发表于2022-05-04 23:00 被阅读0次

    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

    相关文章

      网友评论

          本文标题:二docker镜像基本命令

          本文链接:https://www.haomeiwen.com/subject/htwgyrtx.html