手把手带你构建dockers镜像

目录

前言

一、Dockerfile文件

二、跟做先构建个简单的镜像感受一下

1. 将需要的用到的资源(jdk-8u211-linux-x64.tar.gz)准备好,创建一个文本文件名称为Dockerfile(命令:touch Dockerfile)

 2.vi命令编辑Dockerfile ,粘贴下面内容

3.使用 Dockerfile 构建名为my-jdk:8的镜像(在Dockerfile所在目录执行)

 4.镜像的导出与导入

三、Dockerfile文件指令

FROM

MAINTAINER

RUN

COPY

ADD

CMD

ENV

VOLUME

四、注意事项


前言

如果您对dockers基础不熟悉,可以先跟着(docker安装及应用)这篇文章。

一、Dockerfile文件

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

二、跟做先构建个简单的镜像感受一下

1. 将需要的用到的资源(jdk-8u211-linux-x64.tar.gz)准备好,创建一个文本文件名称为Dockerfile(命令:touch Dockerfile)

 2.vi命令编辑Dockerfile ,粘贴下面内容

FROM centos

MAINTAINER zengLingYao

RUN mkdir /usr/local/java

ADD jdk-8u211-linux-x64.tar.gz /usr/local/java/

RUN ln -s /usr/local/java/jdk1.8.0_211 /usr/local/java/jdk

ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

3.使用 Dockerfile 构建名为my-jdk:8的镜像(在Dockerfile所在目录执行)

docker build -t my-jdk:8 .

 生成镜像后我们可以通过docker images命令看到自己构建的镜像

 4.镜像的导出与导入

导出命令:docker save  my-jdk:8 | gzip > my-jdk:8.tar.gz

导入命令:docker load < my-jdk:8.tar.gz

三、Dockerfile文件指令

FROM

FROM用于指定基础镜像,且必须为第一个命令

例1:FROM centos              最新版本

例2:FROM centos:7        指定版本

MAINTAINER

Dockerfile作者信息,一般写的是联系方式

例:MAINTAINER   3198215426@qq.com

RUN

用于执行后面跟着Linux系统命令的命令

例:RUN yum -y install wget

COPY

从上下文目录中复制文件或者目录到容器里指定的绝对路径

例: COPY test /user/local/docker

ADD

对压缩文件进行解压缩;将数据移动到指定的目录

例: ADD jdk-8u211-linux-x64.tar.gz /user/local/docker

CMD

在docker run 时运行

例:CMD ["/bin/echo", "this is a echo test"]

ENV

环境变量

例1:ENV <key> <value>

例2:ENV <key1>=<value1> <key2>=<value2>...

VOLUME

定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。

例1:VOLUME ["/data",...]

例2:VOLUME /data


 

四、注意事项

Dockerfile 的指令每执行一次都会在 docker 上新建一层。

FROM centos
RUN yum -y install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz


#会建3层镜像应改为下面写法只建1层


FROM centos
RUN yum -y install wget \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz

使用ADD/COPY命令,资源文件必须和Dockfile位于同一目录下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值