自定义镜像
一、镜像结构
镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。
镜像是分层结构,每一层称为一个Layer:
入口(Entrypoint): 镜像运行入口,一般是程序启动的脚本和参数
层( Layer):在BaseImage基础上添加安装包、依赖、配置等,每次操作都形成新的一层。
基础镜像(BaseImage):应用依赖的系统函数库、环境、配置、文件等
二、Dockfile
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
官网文档: https://docs.docker.com/engine/reference/builder
当构建java项目镜像时,从安装jdk到配置环境变量等也都是构建其它java项目镜像时必须执行的。因此可以将这些公有的部分抽取为镜像,需要构建java镜像时就直接从共有部分构成的镜像构建如使用FROM命令 FROM java:8-alpine 镜像构建java项目镜像。
Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
Dockerfile的第一行必须是FROM,从一个基础镜像来构建
基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine