zoukankan      html  css  js  c++  java
  • 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:仅仅只是声明端口

  • 相关阅读:
    redis 键命令
    redis 数据类型
    java向word写入数据
    Eclipse发布到tomcat提示java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    Unable to locate Spring NamespaceHandler for XMLschemanamespace http://dubbo.apache.org/schema/dubbo
    5.Dubbo之Spring XML配置
    6.Dubbo之XML配置详解。
    7.Dubbo之最佳实践
    RESTful API实践
    Jav程序执行Linux命令
  • 原文地址:https://www.cnblogs.com/shadow-yin/p/14152021.html
Copyright © 2011-2022 走看看