【笔记】Dockerfile自定义镜像

前言

Dockerfile自定义镜像学习笔记
Dockerfile是一个文本文件,用于存放自动化部署镜像的脚本代码

镜像结构

  • 镜像:将应用程序及其需要的系统函数库、环境、配置、依赖打包而成的
  • 基础镜像(BaseImage):应用依赖的系统函数库、环境、配置、文件等
  • 入口(Entrypoint):镜像运行入口,一般是程序启动的脚本和参数
  • 层(Layer):在基础镜像基础上添加安装包、依赖、配置等时,每次操作都形成一层

Dockerfile的常用指令

指定基础镜像

<system>:操作系统名
<version>:操作系统版本

1
FROM <system>:<version>

设置环境变量

<key>:环境变量键
<value>:环境变量值

1
ENV <key> <value>

将本地文件拷贝到镜像内

<file_local>:本地文件
<src_image>:镜像内的目录

1
COPY <file_local> <src_image>

在镜像内执行命令

<shell>:Shell命令

1
RUN <shell>

指定容器运行时监听的端口

<port>:端口号

1
EXPOSE <port>

镜像中应用启动

1
EXTRYPONIT java -jar xxx.jar

Java项目Dockerfile案例

java:8-alpine:包含了操作系统和jdk8环境的基础镜像
./demo.jar:指定宿主机上的jar包路径

1
2
3
4
5
6
7
FROM java:8-alpine

COPY ./demo.jar /app.jar

EXPORT 8080

ENTRYPOINT java -jar /app.jar

通过Dockerfile构建镜像

<image_name>:<version>:镜像名和版本号
<src_dockerfile>:Dockerfile所在的目录,如果是当前目录就指定.

1
docker build -t <image_name>:<version> <src_dockerfile>

完成

参考文献

哔哩哔哩——黑马程序员