• Docker file 语法笔记


    Dockerfile语法规则

    INSTRUCTION argument,命令不区分大小写,但约定为全部大写;必须以FROM命令开始,命令出现的顺序就是被执行的顺序

    • FROM:指定镜像基于哪个基础镜像创建,后续命令会基于该基础镜像。多次使用表示会创建多个镜像

                   FROM <image name>

    • MAINTAINER:设置该镜像的作者

                   MAINTAINER <author name>

    • RUN:执行的shell命令,该命令会在新创建的镜像上添加新的层面。

                   RUN  <command> 如:cd target && tar -zxvf datastudio.tar.gz && chmod +x datastudio/bin/run-k8s.sh

    • ADD:复制文件命令。参数:source 和 destination,destination 是容器内的路径。source 可以是 URL 或者是启动配置上下文中的一个文件

                   ADD  <source>  <destination>

    • CMD:容器默认的执行命令。Dockerfile只允许使用一次CMD命令。多个CMD会抵消之前所有的命令,只有最后一个命令生效

                   CMD ["executable","param1","param2"] 或 CMD ["param1","param2"]

    • EXPOSE:指定容器在运行时监听的端口。语法如下:

                   EXPOSE <port>

    • ENTRYPOINT:配置给容器的可执行命令,类似于CMD,只允许一个ENTRYPOINT,多个只执行最后一个

                   ENTRYPOINT ["executable", "param1","param2"]

    • WORKDIR:指定RUN、CMD与ENTRYPOINT 命令的工作目录

                   WORKDIR  /path/to/workdir

    • ENV:设置环境变量。键值对形式

                   ENV <key> <value>

    • USER:给镜像运行时设置一个UID

                   USER <uid>

    • VOLUME:授权访问从容器内到主机上的目录

                   VOLUME ["/data"]

    一个实例:

    FROM af.xxx.com.cn/docker-ssrd/jdk/jdk8 AS stage-unzip
    LABEL author="zhangsan@xxx.com.cn"
    
    # 设置环境变量和容器的 Work 目录
    ENV APP_HOME /app
    ENV APP_TMP /app-tmp
    WORKDIR $APP_HOME
    # 复制代码和启动脚本
    
    COPY ./target/*.zip    ${APP_TMP}/
    RUN unzip ${APP_TMP}/*.zip -d ${APP_HOME}/
    
    FROM af.xxx.com.cn/docker-ssrd/jdk/jdk8
    ENV APP_HOME /app
    WORKDIR $APP_HOME
    
    COPY --from=stage-unzip app/ ${APP_HOME}
    # 设定镜像的启动脚本
    ENTRYPOINT [ "sh","/app/bin/loghub/bin/run-k8s.sh" ]

     

  • 相关阅读:
    开心网注册详解和邀请码发放
    3COM 905TX 配置
    SQL使用
    JDBC的使用
    kiko日记几个月以来工作总结2010 1124
    talk about the history of JAZZ
    这几个月的工作任务
    工作间期的不足
    转: mac使用nvm管理多个版本node
    负载均衡与ssl证书
  • 原文地址:https://www.cnblogs.com/yb38156/p/15851255.html
Copyright © 2020-2023  润新知