• 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:仅仅只是声明端口

  • 相关阅读:
    Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
    Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
    Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
    各产品编译及串口烧录
    C 语言代码规范
    烧录
    共享目录
    openwrt Makefile
    netfilter 参考pywj的《netfilter + nf_conntrack + iptables》
    iptables问题
  • 原文地址:https://www.cnblogs.com/shadow-yin/p/14152021.html
Copyright © 2020-2023  润新知