当前位置 主页 > 服务器问题 > nginx问题汇总 >

    使用dockerfile构建nginx镜像的方法示例

    栏目:nginx问题汇总 时间:2018-11-17 16:52

    这篇文章主要介绍了使用dockerfile构建nginx镜像的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Dockerfile介绍

    Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令对应Linux系统下面的一条命令,由Docker程序将这些Dockerfile指令翻译成真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。

    Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

    docker构建镜像的方法: commit、dockerfile

      1、使用commit来构建镜像:

        commit是基于原有镜像基础上构建的镜像,使用此方法构建镜像的目的:保存镜像里的一些配置信息和修改的信息。相当于一个镜像的快照。

      2、使用dockerfile来构建镜像:

        dockerfile是快速构建所需(自定义)镜像。

    dockerfile的指令:

      FROM:指定基础镜像(FROM是必备的指令,并且必须为第一条指令)。

      RUN: 用来执行命令行命令。其基本格式:

          shell格式: RUN <命令> ,输入在bash环境中的命令即可,一个dockerfile允许使用RUN不得超过127层,所以,使用一次RUN, 使用 ‘ \' 换行,使用‘ && '执行下一条命令。一般使用此种格式;

          exec格式: RUN <"可执行文件", "参数1", "参数2">,此种方式像是函数调用中的格式;

      COPY: 复制文件。 其基本格式:

          格式1:COPY <源路径>...<目标路径>

          格式2:COPY [“<源路径1>”,....."<目标路径>"]

      ADD: 更高级的复制文件,在COPY的基础上增加了一些功能,如果复制的是压缩包的话,会直接解压,而不需要在使用RUN解压;

      CMD:容器启动命令。其基本格式:

          shell格式: CMD <命令>

          exec格式: CMD ["可执行文件", "参数1", "参数2"...]

          参数列表格式: CMD [“参数1”, “参数2”...],在指定了ENTRYPOINT指令后,用CMD指定具体的参数

      ENTRYPOINT: 入口点。其基本格式分为exec和shell,

          ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数。ENTRYPOINT在运行中可以替代,不过比CMD繁琐,需要通过docker run 的参数--entrypoint 来指定。当指定了ENTRYPOINT后,CMD的含义就发生了改变,不在是直接运行其命令,而是将CMD的内容作为参数传递给ENTRYPOINT指令。其执行时就变成了: <ENTRYPOINT> "<CMD>"

      ENV: 设置环境变量。(都可以使用这里使用的变量)其基本格式:

          格式1:ENV <key> <value>

          格式2:ENV <key1>=<value1> <key2>=<value>...

      ARG: 构建参数。构建参数和ENV的效果一样,都是设置环境变量,所不同的是ARG所构建的环境变量在将来容器运行时是不存在的。其基本格式: