Dockerfile制作镜像

Dockerfile是创建Docker镜像的源代码,它包含了一系列指令,如FROM、COPY、RUN等,用于自动化构建过程。FROM指令是必需的,用于指定基础镜像。Docker按顺序执行Dockerfile中的指令,允许设置环境变量、添加文件、定义运行时环境等。通过Dockerfile,用户可以创建自动构建流程,简化镜像制作。此外,Dockerfile还支持使用ARG和ONBUILD等高级指令,以实现更灵活的构建逻辑。
摘要由CSDN通过智能技术生成

Dockerfile制作镜像

  • 镜像生成的途径

    1. Dockerfile制作
    2. 基于容器制作(直接在容器中制作)
      docker2_002
  • Dockerfile只是构建Docker映像的源代码

    1. Docker可以通过读取Dockerfile中的指令来自动构建图像
    2. Dockerfile是一个文本文档,包含用户可以在命令行上调用的所有命令来组装一个图像
    3. 使用docker构建用户可以创建一个自动构建,该构建可以连续执行多个命令行指令
      docker2_001
  • Dockerfile的文件格式

    1. 格式(Format)
      • # Comment#开头的为注释信息
      • INSTRUCTION arguments 指令和参数
    2. Dockerfile的指令不区分大小写
      • 通常都会将指令写成大写,以便于区分指令和参数。
    3. Docker按顺序在Dockerfile中运行指令
    4. 第一个指令必须是“FROM”,以便指定要从中构建的基本映像
  • 环境替代(Environment replacement)

    1. Environment变量(使用ENV语句声明)也可以在某些指令中用作Dockerfile要解释的变量
    2. Dockerfile中使用$variable_name${variable_name}标注环境变量
    3. ${variable_name)语法还支持一些标准的bash修饰符
      • ${variable:-word} 如果variable有值,那么使用variable的值,如果没有就使用word字符串作为值
      • ${variable:+word} 如果variable有值,那么使用word字符串作为值,如果没有设置就是variable值,即空值。

Dockerfile的指令

  1. FROM 指令

    • FROM指令是最重要的一个且必须为Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指定基准镜像,后续的指令运行与此基准镜像所提供的运行环境
    • 实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build会在docker主机上查找指定的镜像文件,在其不存在时,则会从Docker Hub Registry上拉取所需的镜像文件
      • 如果找不到指定的镜像文件,docker build会返回一个错误信息
    • 语法:
      • FROM <repository>[:<tag>]<FROM <resository>@<digest>
        • <reposotiry>:指定作为base image的名称
        • <tag>:buse image的标签,省略时默认为latest;
        • <digest> buse image镜像的哈希码
    # 在任意目录中创建Dockerfile文件
    [root@gdy img1]# vim Dockerfile
    
  2. MAINTANIER 指令(depreacted,作者信息)

    • 用于让Dockerfile制作者提供本人的详细信息
    • Dockerfile 并不限制MAINTAINER指令可能出现的位置,但推荐将其放置于FROM指令之后
    • 语法:MAINTAINER <authtor's detail>
      • <authtor's detail>可以是任何文本信息,单通常会使用作者名称及邮件地址
        1. 示例:MAINTAINER "xdd <xdd@xdd.com>"
  3. LABEL 指令(docker1.7后的语法)指定元数据

    • 语法:LABEL <key>=<value> <key>=<value> <key>=<value> ...
  4. COPY 指令

    • 用于从Docker主机复制文件至创建的新映像文件

    • 语法 COPY <src> ... <dest>COPY ["<src>",..."<dest>"]

      • <src>:要复制的源文件或目录,支持使用通配符
      • <dest>:目标路径,即正在创建的image的文件系统路径;建议为<dest>使用绝对路径,否则,COPY指定则以WORKDIR为其实路径;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值