1、镜像结构

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

我们以MySQL为例,来看看镜像的组成结构:

1-DockerFile基础使用.png

简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。

我们要构建镜像,其实就是实现上述打包的过程。

2、Dockerfile语法

构建自定义的镜像时,并不需要一个个文件去拷贝,打包。

我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。

而描述上述信息的文件就是Dockerfile文件。

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

2-Dockerfile.png

更新详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder

  • 放在项目的根目录下
# 指定基础镜像
FROM openjdk:11-jre

# 镜像作者
LABEL maintainer=" yezi tajiaoyezi@gmail.com"

# 打包镜像时执行的命令
RUN mkdir -p /app
WORKDIR /app

# 对外暴露端口
EXPOSE 6010

# 把文件打包到容器里
ADD ./target/kunify-kg.jar ./app.jar
ADD ./wait-for-it.sh ./wait-for-it.sh

# 打包镜像时执行的命令
RUN chmod +x wait-for-it.sh

  • 执行打包命令
docker build -t 镜像名称:镜像TAG . # 注意不要忘记结尾的点