Docker04 Dockerfile文件

本文详细介绍了Dockerfile的基本结构、书写规则和思想,包括FROM、MAINTAINER、RUN、ENV、COPY、ADD、EXPOSE、CMD、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD、LABEL、ARG、STOPSIGNAL、HEALTHCHECK和SHELL等指令的用途和语法,并提供了实战案例,旨在帮助读者深入理解并熟练掌握Dockerfile的编写技巧。
摘要由CSDN通过智能技术生成

目录

一、Dockerfile基本结构

        拿到Dockerfile(可以命名为其他名字,但是不推荐)后就可以通过docker build实现镜像的复制。在同一文件夹下存在多个Dockerfile的情况,可以修改Dockerfile文件名,如Dockerfile.first、Dockerfile.second,只需要在构建时加上-f参数即可。

1.1 Dockerfile书写规则

  1. 注释://
  2. 语法结构: 指令 参数
  3. 大小写问题: 官方允许小写的指令,但是为了代码的可读性,指令用大写

1.2 Dockerfile书写思想

  1. 注意自动化: 文件是否可以一直持续不断的运行下去,遇到交互节点时候可以自动应答
  2. Dockerfile顺序: Dockerfile构建是从上到下的,所以书写时需要考虑命令执行情况适当调整指令位置(例如软件依赖应在软件执行源命令前安装)
  3. 注意清理: 在构建完成后,清除构建过程中产生的临时文件(并不是删除文件后体积一定会减小),以保证镜像的体积节省资源
  4. 文件易读性: 例如,一条很长的命令,不要一行写到底,可以加\分隔

二、Dockerfile指令介绍

2.1 FROM

2.1.1 作用

        指定基础镜像

2.1.2 语法

FROM <imageName:tag>

案例:

FROM aprine

2.2 MAINTAINER

2.2.1 作用

        设置维护者信息

2.1.2 语法

MAINTAINER Name <Email>

2.3 RUN

2.3.1 作用

        执行构建命令,RUN会在shell或者exec环境下执行命令

2.3.2 语法

        shell指令会在当前命令顶层执行命令

2.3.2.1 shell格式案例

RUN echo Hello World

2.3.2.2 exec格式案例

        exec使用JSON格式将程序名和所需参数组成一个字符串数组,如果参数中有引号等特殊字符,需要转义。使用exec的格式避免了调用/bin/sh的消耗,但是exec不会触发shell,所以$HOME等环境变量不能使用。但是他可以在没有shell的环境中执行,可以避免解析命令错误字符串

RUN ["程序名","参数1","参数2", ...]

2.4 ENV

2.4.1 作用

        设置镜像环境变量指令

2.4.2 语法

ENV <key> <value>

案例:

ENV TARGET_DIR /app

// 使用环境变量
WORKDIR $TARGET_DIR

2.5 COPY

2.5.1 作用

        复制文件

2.5.2 语法

ENV <文件原路径> <目标路径>

2.6 ADD

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值