• [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则两种都是可以的
  • 相关阅读:
    开发工具 编程风格
    WinServer2003 Computer Browser服务每隔一段时间自动关闭问题解决方法
    VSS 无法与服务器建立连接 以及与服务器断开连接
    VSS 部署
    db2 服务器启动项目
    Sublime Text 2 编辑器实用技巧
    WdatePicker日历控件使用方法
    02.微博账号注册
    01.微博三方登录原理讲解
    3.celery发送短信接口
  • 原文地址:https://www.cnblogs.com/xuelong3/p/8029397.html
Copyright © 2020-2023  润新知