Dockerfile(二)---Dockerfile体系结构保留字指令

    xiaoxiao2022-07-13  133

    Dockerfile体系结构保留字指令

    1. FROM2. MAINTAINER3. RUN4. EXPOSE5. WORKDIR6. ENV7. ADD8. COPY9. VOLUME10. CMD11. ENTRYPOINT12. ONBUILD

    1. FROM

    基础镜像,当前的新镜像是基于哪个镜像的

    2. MAINTAINER

    镜像维护者的姓名和邮箱地址

    3. RUN

    容器构建时需要运行的额外的命令

    4. EXPOSE

    当前容器对我暴露出的端口

    5. WORKDIR

    指定在创建容器后,终端默认登录的进来的工作目录,一个落脚点,如果不配置默认为根目录 进入之后目录为/

    6. ENV

    用来在构建镜像过程中设置环境变量 ENV MY_PATH /usr/mytest 这个环境变量可以在后续的RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样;也可以在其它指令中直接使用这些环境变量,

    比如: WORKDIR $MY_PATH

    7. ADD

    将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

    8. COPY

    类似ADD,拷贝文件和目录到镜像中。 将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

    COPY src destCOPY [“src”, “dest”]

    9. VOLUME

    容器数据卷,用于数据保存和持久化工作

    10. CMD

    指定一个容器启动时要运行的命令

    CMD 容器启动命令 CMD指令的格式和RUN相似,也是两种格式

    shell 格式: CMD<命令>exec 格式: CMD[“可执行文件”, “参数1”, “参数2”…]参数列表格式: CMD[ “参数1”, “参数2”…], 在指定了ENTRYPOINT指令后,用CMD指定具体的参数

    Dockefile中够可以有多个CMD指令,但只有最后一个生效,CMD会被 run之后的参数替换

    11. ENTRYPOINT

    指定一个容器启动时要运行的命令 ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数

    CMD和ENTRYPOINT区别在于:

    docker run之后的参数会替换CMD指令,但是不会替换ENTRYPOINT指令有多个CMD指令时,只有最后一个CMD指令生效,而ENTRYPOINT有多个指令时,相当于ENTRYPOINT指令追加,多个ENTRYPOINT指令都会生效

    12. ONBUILD

    当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

    保留字指令说明FROM基础镜像,当前的新镜像是基于哪个镜像的MAINTAINER镜像维护者的姓名和邮箱地址RUN容器构建时需要运行的额外的命令EXPOSE当前容器对我暴露出的端口WORKDIR指定在创建容器后,终端默认登录的进来的工作目录,一个落脚点,如果不配置默认为根目录 进入之后目录为/ENV用来在构建镜像过程中设置环境变量ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包COPY类似ADD,拷贝文件和目录到镜像中VOLUME容器数据卷,用于数据保存和持久化工作CMD指定一个容器启动时要运行的命令ENTRYPOINT指定一个容器启动时要运行的命令ONBUILD当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发 BUILDBothRUNFROMWORKDIRCMDMAINTAINERENVCOPYEXPOSEADDVOLUMERUNENTRYPOINTONBUILD
    最新回复(0)