博客
关于我
docker概念:用Dockerfile生成Image
阅读量:792 次
发布时间:2019-03-24

本文共 1485 字,大约阅读时间需要 4 分钟。

Dockerfile入门指南

前言

Dockerfile是(特定技术领域中)开发和运行容器镜像的核心文件。如果你想要定制或共享一个镜像,没有这个文件是无法实现的。掌握Dockerfile的灵活运用,是每一个开发者必须具备的技能。

Docker镜像的基本理解

一、镜像结构

  • 基镜像:包含基本的系统环境和文件系统,镜像的起点。
  • 父镜像:存放你自定义的功能模块和应用程序。

二、路径分类 路径的划分与理解是Dockerfile写作的关键:

  • 当前工作目录
  • Dockerfile所在目录
  • 上下文构建路径
  • Dockerfile语法详解

    FROM与RUN语句解析

    FROM是镜像构建的起点,必须作为第一条指令。例如,若你要构建一个定制的Nginx镜像,需要指定一个基镜像。从这个语句可以看出,镜像是基于一个现有的镜像进行修改和扩展的。 示例:

    FROM nginx
    RUN echo "这是一个本地构建的Nginx镜像" > /usr/share/nginx/html/index.html

    RUN语句的两种格式

    • shell格式:直接执行OS命令。
      RUN command
    • exec格式:执行可执行文件。
      RUN ["executable", "arg1", "arg2"]

    COPY与ADD语句

    COPY和ADD用于将文件或目录复制到镜像中。

    • COPY命令复制主机上的文件。
      COPY hom* /mydir/
    • ADD命令处理压缩包。
      ADD harbor.tar.gz /myapp/

    CMD与ENTRYPOINT

  • CMD:执行容器启动时的默认命令。
    CMD ["executable", "param1", "param2"]
  • ENTRYPOINT:为容器指定运行的程序,优先级高于CMD。
    ENTRYPOINT ["nginx", "-c"]
  • 注意:Entries点可以接受命令行参数,而CMD则可以被覆盖。

    ENV与ARG指令

  • ENV:设置镜像内的环境变量,可用于后续指令。
  • ENV NODE_VERSION=7.2.0

    ginard Hermione taxed understand FILE gemian dosetas,是不是很押韵?

    1. ARG:为构建命令提供环境变量,如:
    2. ARG DOCKER_VERSION=18.03

      WORKDIR与USER

    3. WORKDIR:指定工作目录,镜像构建过程中每一层都可用。
    4. WORKDIR /opt/nginx/conf
      1. USER:指定执行命令的用户。
      2. USER root:nginx

        VOLUME与EXPOSE

        • VOLUME:参数定向匿名挂载卷。
          VOLUME ["/data"]
        • EXPOSE:声明端口。
          EXPOSE 80:443

        ###健康检查与ONBUILD

        • HEALTHCHECK:监控容器状态的命令。
          HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=3 --commandinterval=30s CMD curl -sSO localhost
        • ONBUILD:延迟执行构建指令。

        示例

        ONBUILD RUN touch /usr/share/nginx/html/index.html

        LABEL

        给镜像添加元数据。 示例:

        LABEL maintainer="runoob.com"

        后记

        这篇文章为技术人员编写,核心内容为Dockerfile学习指南。内容虚构,非真实信息。这篇文章已经过优化,适合技术社区阅读和分享。

    转载地址:http://wixkk.baihongyu.com/

    你可能感兴趣的文章
    php函数性能优化中应注意哪些问题?
    查看>>
    PHP函数操作数字和汉字互转(100以内)
    查看>>
    PHP函数方法
    查看>>
    PHP创建目录mkdir无写入权限的问题解决方案
    查看>>
    PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
    查看>>
    php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
    查看>>
    React Collapse Pane 项目教程
    查看>>
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>
    PHP判断指定目录下是否存在文件
    查看>>
    php判断数组是否为空
    查看>>
    PHP判断数组是否有重复值、获取重复值
    查看>>
    springboot基于Web的社区留守儿童管理系统源码毕设+论文
    查看>>
    Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
    查看>>
    PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
    查看>>
    PHP加密与安全的最佳实践
    查看>>
    PHP加速器eaccelerator导致php-fpm进程卡死原因分析
    查看>>
    PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
    查看>>
    php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
    查看>>
    PHP去掉转义符
    查看>>