二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在镜像中进行各种软件安装。基础步骤如下
- 进入镜像
docker run -i ubuntu:latest -t /bin/bash
- 对镜像进行修改,比如安装一个python包,然后新开一个窗口查看该容器ID(exit退出后无法查看该容器ID)
- 使用
docker ps
查看当前容器id,这里为3ada579fc556
image.png - 通过命令 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