2.5 Docker镜像构建实战:Dockerfile指令详解与最佳实践引言Dockerfile是构建Docker镜像的蓝图。掌握Dockerfile的编写方法和最佳实践,能够构建高效、安全的镜像。本文将详细介绍Dockerfile的各个指令和最佳实践。一、Dockerfile基础1.1 什么是DockerfileDockerfile是一个文本文件,包含构建镜像的指令。1.2 基本结构# 注释 FROM base_image # 指令 RUN command # ...二、Dockerfile指令详解2.1 FROM指定基础镜像。# 使用官方镜像 FROM ubuntu:20.04 # 使用Alpine(轻量级) FROM alpine:latest # 使用多阶段构建 FROM golang:1.21 AS builder FROM alpine:latest2.2 RUN执行命令,创建新层。# 单个命令 RUN apt-get update # 多个命令合并(减少层数) RUN apt-get update \ apt-get install -y nginx \ rm -rf /var/lib/apt/lists/* # 使用shell形式 RUN echo "Hello" /tmp/hello.txt # 使用exec形式(推荐) RUN ["/bin/bash", "-c", "echo Hello /tmp/hello.txt"]2.3 COPY vs ADD复制文件到镜像。# COPY:推荐使用 COPY src/ /app/src/ COPY package.json /app/ # ADD:支持URL和自动解压(不推荐) ADD https://example.com/file.tar.gz /tmp/ ADD file.tar.gz /tmp/ # 自动解压最佳实践:优先使用COPY,除非需要自动解压或从URL下载。2.4 WORKDIR设置工作目录。WORKDIR /app RUN pwd # 输出:/app2.5 ENV设置环境变量。# 单个变量 ENV NODE_EN