Dockerfile自定义构建镜像+Docker插件实现远程部署springboot应用

Dockerfile构建镜像

Dockerfile构建镜像的流程

  • 首先,docker为CS架构(客户端-服务端),在虚拟机使用docker build, docker引擎会将Dockerfile的上下文目录(即Dockerfile所在的目录)的所有数据打包发送给docker服务端。
  • 接着,服务端开始运行dockerfile的内容,每执行dockerfile的一行代码,就会生成一个中间镜像层,当执行下一行代码时,就会生成一个在上一层基础上进行修改的中间镜像层,每一层都是在上一层的基础上进行修改而生成的,这也是为什么构建过程有"层叠"的概念。
  • 最后,当执行到最后一行,最后一次创建的中间镜像层就会成为最终镜像。它代表了 Dockerfile 中所有指令的执行结果和镜像的最终状态。
  • 注意:这些产生的中间镜像层(包括最终镜像)会被缓存到Docker本地镜像仓库里,如果不想要这些缓存,比如说想构建一个同名但是全新(可以理解dockerfile的代码发生变化)的镜像,就要在dockerbuild后加一个参数-no-cache,加了会忽略本地镜像缓存。

Dockerfile命令

FROM
  • Dockerfile的第一条指令必须为From,如果创建多个镜像在同一个dockerfile,就可以用多个FROM,一个FROM代表一个镜像。
  • 语法格式:
 

css

复制代码

FROM 镜像名称 # 或者 FROM 镜像名称:版本号

MAINTAINER
  • 用于指定维护者信息,也可以叫作者信息
  • 语法格式:
 

less

复制代码

MAINTAINER 维护者信息(eg:yourName yourQQ@qq.com)

RUN
  • RUN 指令将在当前镜像基础上执行指定命令,并提交为新的中间镜像层,当命令较长时可以使用 \ 来换行
  • 语法格式:
 

bash

复制代码

RUN 执行的命令 #举例 RUN echo 'Asia/Shanghai' >/etc/timezone

VOLUME
  • 基于镜像创建的容器添加数据卷,通过挂载将外部的目录或者其他容器的数据卷映射到该路径上,从而实现对数据的持久化
  • 语法格式:
 

bash

复制代码

VOLUME 外部路径:容器路径 #举例 VOLUME /tmp

  • 举例中只写了一个路径的话就代表容器路径,会创建一个匿名卷挂载到容器的tmp目录,这样,容器中对 /tmp 目录的读写操作将直接映射到匿名卷上。
  • 默认情况下,Docker 会将匿名卷存储在位于宿主机的 /var/lib/docker/volumes/ 目录下。每个匿名卷都会以一个随机生成的唯一名称来标识,并在该目录下创建对应的子目录。
ADD
  • 将dockerfile所在目录中指定的文件复制到镜像的指定目录中
  • 同时可以识别远程URL,会自动下载URL对应的压缩包(不推荐使用)
  • 如果指定的文件是压缩包(如 .tar, .gz, .zip 等),会自动解压缩文件复制到镜像
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值