• Docker-Dockerfile格式


    1、FROM //指定基于那个基础镜像

    格式FROM<image>或者FROM<image>:<tag>

    例如:

    FROM centos

    FROM centos:latest

    2、MAINTAINER //指定作者信息

    格式MAINTAINER<name>

    例如:

    MAINTAINER fansik shandingshangdeyu@hotmail.com

    3、RUN //镜像操作指令

    格式为RUN<command>或者RUN["executable","param1","param2"]

    例如:

    RUN yum install httpd

    RUN["/bin/bash","-c","echo hello"]

    4、CMD //三种格式:

    CMD["executable","param1","param2"]

    CMD command param1 param2

    CMD ["param1","param2"]

    RUN和CMD看起来很像,但是CMD用来指定容器启动时用到的命令,只能有一条

    例如:

    CMD["/bin/bash","/usr/local/nginx/sbin/nginx","-c","/usr/local/nginx/conf/nginx.conf"]

    5、EXPOSE

    格式为EXPOSE<port>[<port>...]

    例如:

    EXPOSE 22 80 8443

    这个用来指定要映射出去的端口,比如容器内部我们启动了sshd和nginx,所以我们要把22和80端口暴漏出去,这个需配合-P(大写)来工作,也就是说在启动容器时,需要加上-P(大写),让它自动分配,如果想指定具体的端口,也可以用-p(小写)来指定

    6、ENV

    格式ENV<key><values>

    例如:

    ENV PATH /usr/local/mysql/bin:$PATH

    它主要是为后续的RUN指令提供一个环境变量,我们也可以定义一些自定义的变量

    ENV MYSQL_version 5.6

    7、ADD

    格式:ADD<src><dest>

    将本地的一个文件或目录拷贝到容器的某个目录里,其中src为Dockerfile所在目录的相对路径,它可以是一个url。

    例如:

    ADD<conf/vhosts></usr/local/nginx/conf>

    8、COPY

    用于从Dokcer主机复制文件至创建的新映像文件

    COPY <src>...<dest>或

    COPY ["<src>"..."<dest>"]

    •   <src>:要复制的源文件或目录,支持使用通配符
    •     <dest>:目标路径,即正在创建的image的文件系统路径,建议<dest>使用绝对路径,否则,COPY指定则以WORKDIR为其起始路径

       注意:在路径中有空白字符时,通常使用第二种格式

    文件复制准则:

    •     <src>必须是build上下文中的路径,不能是其父目录中的文件
    •     如果<src>是目录,则其内部文件或子目录会被递归复制,但<src>目录自身不会被复制
    •     如果指定了多个<src>,或在<src>中使用了通配符,则<dest>必须是一个目录,且必须以/结尾
    •     如果<dest>事先不存在,它将会被自动创建,这包括其父目录路径。

    使用方法和ADD一样,不同的是它不支持url

    9、ENTERYPOINT 格式类似CMD

    容器启动是要执行的命令,它和CMD很像,也是只有一条生效,如果写多个只有最后一条生效。

    和CMD不同的是:

    CMD是可以被docker run指令覆盖的,而ENTRYPOINT不能覆盖,比如,容器名字为fansik,在Dockerfile中指定如下CMD:CMD["/bin/echo","test"]启动容器的命令是docker run fansik这样会输出test

    如果启动容器的命令为docker run -it fansik /bin/bash什么都不会输出

    ENTRYPOINT不会被覆盖,而且会比CMD活着docker run指定得命令要靠前执行

    ENTRYPOINT["echo","test"]

    docker run -it fansik 123

    则会输出test 123,这相当于要执行命令echo test 123

    10、VOLUME

    格式VOLUME["/data"]

    创建一个可以从本地主机或其他容器挂载的挂载点

    11、USER

    格式USER daemon

    指定运行容器的用户

    12、WORKDIR

    格式WORKDIR /path/to/workdir

    为后续的RUN、CMD或者ENTRYPOINT指定工作目录

     

  • 相关阅读:
    安卓四核PDA手持PDA智能POS机 打印二维码 分享
    安卓智能POS开单神器-成为零售批发商亲睐的生意帮手-pda销售扫描开单 现场结算打印凭据
    一个神奇的POS -扫描 现场销售 开单打印票据 安卓物联网POS机 手持开单终端机 省时省力 高效准确!!
    浩瀚土石方车辆管理计数器_刷卡计数器手持式土石方车辆计数器系统方案
    浩瀚ocr数字识别扫描枪 进口冻货抄码器 抄码器 牛羊肉 抄码器 抄码抄码枪 扫码器重量累加
    浩瀚抄码器 冻品扫码枪 扫码机识别数字 进口肉抄码器 牛羊抄码器 冻品抄码
    浩瀚牛肉扫码器 牛羊肉抄码 进口牛肉扫码枪 进口牛羊肉扫码机 抄码系统
    多进程
    不定长参数和进程
    面向对象进阶2
  • 原文地址:https://www.cnblogs.com/fansik/p/5541298.html
Copyright © 2020-2023  润新知