zoukankan      html  css  js  c++  java
  • [Docker8]Dockerfiles

    Comment
    INSTRUCTION arguments

    FROM
    基于哪个base镜像

    RUN

    • 执行命令并创建新的镜像层,run经常用于安装软件包

    MAINTAINER
    镜像创建者

    copy
    将文件从build context复制到镜像

    #1
    COPY ["src","dest"]
    COPY src dest
    #注意:src只能指定build context中的文件
    

    CMD

    • container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD。CMD主要用于container启动时指定的服务
    • 当docker run command的命令匹配到CMD command时,会替换CMD执行的命令。
    • 存在三种使用格式
      • Exec: CMD ["Command","param1","param2"]
      • CMD ["param1","param2"] 为ENTRYPOINT提供额外的参数,此时ENTRYPOINT必须使用exec格式
      • CMD command param1 param2

    ENTRYPOINT
    container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条。ENTRYPOINT没有CMD的可替换特性

    • ENTRYPOINT的exec格式用于设置执行的命令及其参数,同时可通过CMD提供额外的参数
    • ENTRYPOINT的shell格式会忽略任何CMD或docker run提供的参数

    USER
    使用哪个用户跑container

    EXPOSE

    container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:
    docker run -d -p 127.0.0.1:3000:22 ubuntu-ssh
    container ssh服务的22端口被映射到主机的33301端口

    ENV
    用来设置环境变量,比如:ENV ROOT_PASS tenxcloud

    ADD
    将文件拷贝到container的文件系统对应的路径。ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。如果src是一个tar,zip,tgz,xz文件,文件会被自动的解压到dest

    VOLUME
    可以将本地文件夹或者其他container的文件夹挂载到container中。

    WORKDIR
    切换目录用,可以多次切换(相当于cd命令),对RUN、CMD、ENTRYPOINT生效

    ONBUILD
    ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行

    注意

    构建dockerfile时,必须提前转备好build context中的文件

    两种方式shell,EXEC指定run,cmd和entrypoint要运行的命令

    • CMD和ENTRYPOINT建议使用Exec格式
    • RUN则两种都是可以的
  • 相关阅读:
    东边日出西边雨
    ZooKeeper学习(一)了解ZooKeeper
    linux学习(七)文件打包和压缩命令
    linux学习(六)Linux yum 命令
    linux学习(五)Linux 文件与目录管理
    linux学习(四)Linux 文件基本属性
    linux学习(三)Linux 系统目录结构
    linux学习(二)认识Linux
    linux学习(一)认识阿里云
    多线程实战【面试题形式】
  • 原文地址:https://www.cnblogs.com/xuelong3/p/8029397.html
Copyright © 2011-2022 走看看