• Docker实战(三)--Dockerfile构建带nginx的centos镜像,并挂载


    1.什么是dockerfile

    个人理解Dockerfile其实应该叫 image file,因为Dockerfile 其实是一个用来构建镜像的文本文件

    FROM centos
    MAINTAINER zengyin<zengyin@qq.com>
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    RUN yum -y install vim
    RUN yum -y install net-tools
    RUN yum -y install nginx
    
    VOLUME /etc/nginx/
    EXPOSE 80
    
    CMD echo $MYPATH
    CMD echo "....end...."
    CMD /bin/bash

    以上文件其实是以centos为基础镜像,安装vim、nginx、net-tools,并将nginx以mounts的方式映射到本地随机生成的路径,暴露80端口

    2.常用指令

    • FROM:定制的镜像都是基于 FROM 的镜像,上面后续的操作都是基于 centos。

    • MAINTAINER:作者(维护者)

    • WORKDIR:指定进入容器后的默认路径

    • RUN:用于安装软件包

    • COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径

    • ADD:ADD 指令和 COPY 的使用格式一致,会自动复制并解压(同样需求下,官方推荐使用 COPY)

    • CMD:用于运行程序,容器启动后,默认执行的命令。“默认”意味着:如果docker run 没有指定任何的执行命令或者dockerfile中也没有ENTRYPOINT时,执行

    • ENTRYPOINT正式的容器启动后的执行体即:如果docker run后有东西,那么后面的全部会被作为ENTRYPOINT的参数;如果run后面没有,但CMD后面有,那么CMD的内容会作为ENTRYPOINT的参数;如果要在docker run时覆盖ENTRYPOINT,使用--entrypoint即可

    • ENV:设置环境变量,那么在后续的指令中,就可以使用这个环境变量

    • ARG:构建参数,与 ENV 作用一至。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效

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

    • EXPOSE:仅仅只是声明端口

  • 相关阅读:
    /etc/init.d/functions: No such file or directory报错问题
    在Linux上安装Python3.7.1
    python 使用openpyxl实现读写xlsx文件
    Git 撤销本地修改
    element的el-table表格自定义表头,slot="header"内,数据不更新的问题
    记录下本地修改文件名称大小写问题线上说找不到文件
    解决国内访问github慢的问题笔记
    vue项目中使用echarts实现疫情地图
    uni-app项目搭建
    uniapp引入uni-ui组件报错TypeError: this.getOptions is not a function
  • 原文地址:https://www.cnblogs.com/shadow-yin/p/14152021.html
Copyright © 2020-2023  润新知