• Dockerfile 简介


    1、介绍

    创建docker 镜像有两种方法

    1 是通过commit命令 形成一个新的镜像

    2 就是通过dockerfile,通过build 构建最终的镜像文件。

    在实际环境中,变量很多,不能说修改一次commit一次,很麻烦,此时我们就可以通过dockerfile来创建镜像,一次搞定。

    dockerfile 文件:

    从上到下执行,关键保留字都要大写。

    每次运行一行都相当于创建了一个新的镜像,commit一次,之后在创建出一个容器,在容器内在执行下一条命令,直到命令全部运行完形成最终的镜像。

    2、Dockerfile保留字简介

    官网 dockerfile

    2.1 FROM

    from是指基础镜像,当前新镜像是基于哪一个镜像的,指定一个已存在的镜像作为模板。

    2.2 MAINTAINER

    是镜像维护者 指当前的镜像是由谁编写的 加上姓名和邮箱。

    2.3 RUN

    run是在docker built 时运行的,他有两种格式

    1、 是 shell格式 比如 RUN apt-get -y install vim  (更常用)

    2、是exec格式  RUN ['可执行文件',‘参数1’,‘参数2’]

    比如 RUN['./text.php','dev','offline'] 就相当于 RUN ./text.php dev offline

    2.4 EXPOSE

    当前容器对外暴露出的端口,就比如我们的-p

    2.5 WORKDIR

    指定在我们的容器创建后,默认进入的工作目录,一个落脚点

    2.6 USER(一般不用)

    指定镜像以什么样的用户去执行,如果不指定,就是root 

    2.7 ENV

    用于在构建镜像的过程中 设置环境变量。

    2.8 VOLUME

    容器卷 即-v

    2.9 ADD

    ADD 是COPY+解压

    2.10 COPY

    COPY 没有解压功能

    COPY是将宿主机的文件或目录 复制到我们镜像中

    命令:

    类似于 docker cp....

    2.11 CMD

    注意:

    Dockerfile 可以有多个CMD命令,但是最终只会有最后一个生效,并且 CMD 命令会被docker run后边的参数所取代。

    比如 tomcat  Dockerfilw 最后是 CMD ['catalina.sh',‘run’]

    当我们启动一个tomcat容器时,会自动执行该命令 ,且如果访问8080端口,会访问成功。

    但是如果我们写了 docker run -d tomcat /bin/bash 

    则会用bin/bash 代替 原始的CMD 此时在访问 8080端口就会失败。

    2.12 ENTRYPOINT

    可以和CMD 一起使用,一般是变参的话才会只用CMD,此时CMD等于是在给ENTRYPOINT传参,而不是run时要使用的命令。

    CMD也会被run后参数取代

    2.13 Dockerfile小案例

    通过Dockerfile 在ubuntu上添加一个vim功能 生成一个新的镜像。

    使用docker built -t 镜像名 [:tag] .

    记得最后有一个 空格加一个点

    已生成

    3、虚悬镜像 

    仓库名和tag 都为None

    Dockerfile 内容:

    第一次有个错误:即 我写成了 FROM Ubuntu 仓库第一个字母大写了

    创建

    docker image ls -f dangling=True 查找本地所有的虚悬镜像

    docker image prune 删除虚悬镜像

  • 相关阅读:
    06、SpringBoot+微信支付 -->商户定时查订单状态、用户取消订单(关闭订单API)、查询订单API--到微信支付平台查询订单
    【Redis 实战】dump.rdb、appendonly.aof 文件路径
    【office办公-pdf篇】pdf合并与拆分让我们摆脱付费软件的功能限制好不好
    接口请求合并的 3 种技巧,性能直接爆表
    SPI 应用
    微信小程序和微信H5有什么区别?
    【Rust日报】2022-12-02 WasmEdge增加了Tokio 支持
    雪花算法记录
    02 pycharts 结果生成为 html 、图片(示例代码+效果图)
    【基础篇】二、parent继承、starter、引导类、内嵌tomcat
  • 原文地址:https://blog.csdn.net/qq_45906101/article/details/133778282