1扣蜻、列出本地鏡像
docker images
2灸促、下載鏡像
docker pull ubuntu:latest
其中 ubuntu代表鏡像名,latest代表版本號(hào)
3潦刃、進(jìn)入鏡像
docker run -i -t --rm ubuntu:latest /bin/bash
-t: 在新容器內(nèi)指定一個(gè)偽終端或終端膏秫。
-i: 允許對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互右遭。
--rm: 退出終端后自動(dòng)刪除容器
4、搜索鏡像
docker search ubuntu
5、修改容器獲得鏡像
創(chuàng)建鏡像一般有兩種方式窘哈,一種是通過(guò)docker pull一個(gè)基礎(chǔ)鏡像吹榴,然后通過(guò)docker run在鏡像中進(jìn)行各種軟件安裝」鐾瘢基礎(chǔ)步驟如下
- 進(jìn)入鏡像
docker run -i ubuntu:latest -t /bin/bash
- 對(duì)鏡像進(jìn)行修改图筹,比如安裝一個(gè)python包,然后新開(kāi)一個(gè)窗口查看該容器ID(exit退出后無(wú)法查看該容器ID)
- 使用
docker ps
查看當(dāng)前容器id让腹,這里為3ada579fc556
- 通過(guò)命令 docker commit來(lái)提交容器副本
docker commit -m “transvar fixed” -a="fxn" ada579fc556 transvar:v2.0
此命令根據(jù)容器id(ada579fc556)远剩,將修改后的容器重新提交為鏡像模板(transvar:v2.0),其中
-m: 提交的描述信息
-a: 指定鏡像作者
ada579fc556: 容器ID
transvar:v2.0: 指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名
6骇窍、從Dockerfile創(chuàng)建鏡像
構(gòu)建鏡像的另外一種方式就是從Dockerfile 構(gòu)建鏡像民宿,具體方法如下:
首先創(chuàng)建Dockerfile文件,然后寫(xiě)入指令來(lái)告訴 Docker 如何構(gòu)建我們的鏡像 :
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: 指定使用哪個(gè)鏡像源
RUN: 告訴docker 在鏡像內(nèi)執(zhí)行命令
然后像鸡,我們使用 Dockerfile 文件,通過(guò) docker build 命令來(lái)構(gòu)建一個(gè)鏡像:
docker build -t dnapip:1.0 ./
-t: 指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名
./: Dockerfile 文件所在目錄
7哈恰、為鏡像添加新標(biāo)簽
為ID為fce6b37c3237的鏡像添加addtag_test標(biāo)簽:
docker tag fce6b37c3237 transvar:v03