zoukankan      html  css  js  c++  java
  • dockerfile note

    dockerfile note
    reference

    summary

    1. defination
      docker can build images automatically by reading the instructions from a dockerfile. dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image.

    2. usage
      the docker build command builds an image from a dockerfile and context. the build's context is the set of files at a specified location PATH or URL. warning: don't use PATH /, because it can transfer the entire contents of your hard drive to the docker daemon.
      docker build -f /home/vickey/dockerfile .

    3. format
      a. INSTRUCTION is not case-sensitive but convention is UPPERCASE. e.g: FROM nginx:1.13
      b. must start with FROM.
      c. docker treat lines begin with # as a comment.

    4. parser directive
      reference
      a. parser directive is not case-sentive but convention is lowercase and must at the first line of dockerfile e.g: # directive=value then the next line is FROM nginx:1.13
      b. can't repeat

    5. escape
      in linux default is , " ` " in windows

    6. variable replacement
      ${variable:-word} indicates that if variable is set then the result will be that value. If variable is not set then word will be the result.
      ${variable:+word} indicates that if variable is set then word will be the result, otherwise the result is the empty string.

    7. .dockerignore file
      Before the docker CLI sends the context to the docker daemon, it looks for a file named .dockerignore in the root directory of the context. If this file exists, the CLI modifies the context to exclude files and directories that match patterns in it

    8. FROM
      The tag or digest values are optional. If you omit either of them, the builder assumes a latest tag by default
      FROM buildpack-deps:jessie

    9. RUN

      echo $HOME'```
      equivalent to following
      `RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'`
      
      
    10. CMD
      There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect
      CMD echo "This is a test." | wc -

    11. LABEL
      A LABEL is a key-value pair.
      LABEL version="1.0"
      To view an image’s labels, use the docker inspect command
      docker inspect docker container name

    12. EXPOSE
      By default, EXPOSE assumes TCP. You can also specify UDP:
      EXPOSE 80/udp
      or publish port when run images
      docker run -p 80:80/tcp -p 80:80/udp image_name

    13. ENV
      The entire string after the first space will be treated as the - including whitespace characters. allows for multiple variables to be set at one time

      ENV myDog Rex The Dog```
      equivalent ti `ENV myName = John Doe`
      
      
    14. ADD
      The ADD instruction copies new files, directories or remote file URLs from and adds them to the filesystem of the image at the path

    15. COPY
      The COPY instruction copies new files or directories from <src> and adds them to the filesystem of the container at the path <dest>.
      COPY VS ADD

    16. VOLUME
      The VOLUME instruction creates a mount point with the specified name and marks it as holding externally mounted volumes from native host or other containers. The value can be a JSON array, VOLUME ["/var/log/"], or a plain string with multiple arguments, such as VOLUME /var/log or VOLUME /var/log/var/db

    17. WORKDIR
      The WORKDIR instruction sets the working directory for any RUN, CMD, ENTRYPOINT, COPY and ADD instructions that follow it in the Dockerfile

      RUN pwd```
  • 相关阅读:
    性能碾压 POI !利用模板语法快速生成 Excel 报表
    大庆金桥:基于 SpreadJS 开发实现计量器具检定证书的在线生成与打印
    厦门科云:构建基于 SpreadJS 的管理会计综合实训平台
    为什么 Vue 更符合这个时代的大势所趋
    嵌入SpreadJS,赋能计量器具检定信息化
    GcExcel:比 Apache POI 速度更快、性能更高
    使用SpreadJS 开发在线问卷系统,构筑CCP(云数据采集)平台
    首厚智能:嵌入 SpreadJS 表格组件,搭建实验室信息管理系统(LIMS)
    企业数字化转型:用 SpreadJS 打造互通互链的电力系统物联网
    悲观锁和乐观锁
  • 原文地址:https://www.cnblogs.com/vickey-wu/p/8745953.html
Copyright © 2011-2022 走看看