• docker镜像的创建-Dockerfile


    Dockerfile 是一个用来构建镜像的文件,文本内容包含了一条条构建镜像所需的指令和说明。举例如下
    在这里插入图片描述

    1.FROM

    FROM:定制的镜像都是基于 FROM 的镜像,这里的 orajdk:8 就是定制需要的基础镜像。后续的操作都是基于 orajdk。

    2.RUN

    RUN 用于执行后面跟着的命令行命令。格式为: RUN [“可执行文件”, “参数1”, “参数2”]
    截图中两个RUN命令也可以合为一个:

    RUN yum install traceroute -y \
    && yum install net-tools -y
    

    以\表示命令未结束,以 && 符号表示&&表示当前一条命令执行成功时,执行后一条命令,这样执行后,只会创建 1 层镜像。

    3.COPY

    COPY 复制指令,从目录中复制文件或者目录到容器里指定路径

    4.ADD

    ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:
    ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
    ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

    5.CMD

    类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:
    CMD 在docker run 时运行。
    RUN 是在 docker build。
    如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

    6.ENV

    ENV 设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。

    7.EXPOSE

    仅仅只是声明端口。

    8.ENTRYPOINT

    类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。
    优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。
    注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

    9.WORKDIR

    指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。
    docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。

    10. 生成镜像

    docker build -t filetransfer:1.0 .
    最后的 . 代表本次执行的上下文路径。上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。所以本目录下不要存放无关的文件。

    Dockerfile和Docker-compose

    镜像:dockerfile一般用于构建单个镜像使用;
    docker-compose是可以集成多个镜像和多个dockerfile

    运行:Dockerfile想要运行使用docker build先构建镜像,后运行docker run容器才能创建并运行起来;
    Docker-compose通过docker-compse up -d即可构建镜像并运行

  • 相关阅读:
    idea显示git分支信息(GitToolBox插件)
    Indeterminate form
    DGIOT平台基本功能介绍——物模型及指令通道相关部分介绍
    Spring注解简析
    订水商城H5实战教程-03用户协议
    amlogic 机顶盒关闭DLNA 后,手机还能搜到盒子
    查找算法.
    R语言使用列表数据结构创建KV表(字典数据结构、类似于dictionary或者hash表、或者lookup表)
    Spring的@Async使用防坑
    基于turtlebot的智能机器人物体识别及目标追踪系统
  • 原文地址:https://blog.csdn.net/lz20120808/article/details/127090402