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则两种都是可以的
  • 相关阅读:
    EonerCMS——做一个仿桌面系统的CMS(五)
    给博客园的忠告——做事态度决定用户忠诚度
    EonerCMS——做一个仿桌面系统的CMS(三)
    EonerCMS——做一个仿桌面系统的CMS(七)
    更改windows服务的配置文件(app.config)必须重启服务才能生效吗?
    jQuery:动态改变html表单的目标页(Target)
    iBatis.Net实现返回DataTable和DataSet对象
    更上层楼:动态安装你的windows服务
    MongoDB简单实践:Only CRUD
    发布一个从webform改进而来的asp.net mvc分页工具类
  • 原文地址:https://www.cnblogs.com/xuelong3/p/8029397.html
Copyright © 2011-2022 走看看