• dockerfile


    FROM

      必须为第一个命令,指定基础镜像

    FROM <image>
    FROM <image>:<tag>
    FROM <image>@<digest>
    FROM mysql:5.6

    MAINTAINER

      维护者信息

    MAINTAINER <name>
    MAINTAINER Yishi.Chen

    LABEL

      给镜像添加信息。使用docker inspect可查看镜像的相关信息

    LABEL version="1.0"
    LABEL description="This text illustrates 
    that label-values can span multiple lines."

    RUN

      构建镜像时执行的命令

    # 由shell启动,Linux默认为`/bin/sh -c`,Windows默认为`cmd /S /C`
    RUN <command>
    # 运行可执行文件
    RUN ["executable", "param1", "param2"]
    RUN apk update
    RUN ["/etc/execfile", "arg1", "arg1"]

    ADD

      将本地文件添加到容器中,identity, gzip, bzip2,xz,tar.gz,tgz等类型的文件将被添加tar -x命令,进行解压

    ADD <src>... <dest>
    ADD ["<src>",... "<dest>"] 用于支持包含空格的路径
    ADD hom* /mydir/        # 添加所有以"hom"开头的文件
    ADD hom?.txt /mydir/    # ? 替代一个单字符,例如:"home.txt"
    
    ADD test relativeDir/          # 添加 "test" 到 `WORKDIR`/relativeDir/
    ADD test /absoluteDir/         # 添加 "test" 到 /absoluteDir/

    COPY

      同ADD,只是不会解压文件。

    CMD

      构建容器后调用,也就是在容器启动时才进行调用。

    CMD command param1 param2 (执行shell内部命令)
    CMD echo "This is a test." | wc -

    ENTRYPOINT

      配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

    ENTRYPOINT ["executable", "param1", "param2"] (可执行文件, 优先)
    ENTRYPOINT command param1 param2 (shell内部命令)
    FROM ubuntu
    ENTRYPOINT ["top", "-b"]
    CMD ["-c"]

    ENV

      设置环境变量

    ENV <key> <value>
    ENV <key>=<value> ...
    ENV myName="Yishi" myDog=Rex The Dog 
        myCat=fluffy

      等同于

    ENV myName Yishi Doe
    ENV myDog Rex The Dog
    ENV myCat fluffy

    EXPOSE

      指定于外界交互的端口,在容器启动时用-p传递参数,例如-p 3307:3306将容器内的3306绑定到本机的3307

    EXPOSE <port> [<port>...]
    EXPOSE 80 443
    EXPOSE 8080

    VOLUME

      用于指定持久化目录,在容器启动时用-v传递参数,例如-v ~/opt/data/mysql:/var/lib/mysql将本机的~/opt/data/mysql和容器内的/var/lib/mysql做持久化关联,容器启动时会加载,容器关闭后会回写。

    VOLUME ["/data"]
    VOLUME ["/data"]
    VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]

    WORKDIR

      工作目录

    WORKDIR /path/to/workdir
    WORKDIR /a  (这时工作目录为/a)
    WORKDIR b  (这时工作目录为/a/b)
    WORKDIR c  (这时工作目录为/a/b/c)

    USER

      用于设定容器的运行用户名或UID,USER 123USER git
      RUNCMD and ENTRYPOINT都将用该用户执行。

    ARG

      由外部启动时必须传入的参数,在容器启动时用--build-arg传递参数
      指定于外界交互的端口,在容器启动时用-p传递参数,例如--build-arg CONT_IMG_VER=v2.0.1

    FROM ubuntu
    ARG CONT_IMG_VER
    ENV CONT_IMG_VER ${CONT_IMG_VER:-v1.0.0}
    RUN echo $CONT_IMG_VER
  • 相关阅读:
    时间单位转化
    快速排序算法
    用virtualenv建立Python独立开发环境
    Shell正则表达式之grep、sed、awk实操笔记
    Objective-C 30分钟入门教程
    base64加密后字符串长度
    error: synthesized property 'name' must either be named the same as a compatible instance variable or must explicitly name an instance variable问题解决
    Ubuntu系统下通过Clang编译器编写Objective-C
    MongoDB 聚合Group(二)
    MongoDB聚合(单一用途的聚合方法)
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9947662.html
Copyright © 2020-2023  润新知