Dockerfile 常用写法速查

常用命令

docker build -t app:1.0.0 .
docker build --target runtime -t app:runtime .
docker build --build-arg VERSION=1.0.0 -t app:1.0.0 .
docker buildx build --platform linux/amd64,linux/arm64 -t app:1.0.0 --push .
docker history app:1.0.0
docker run --rm -it app:1.0.0 sh

多阶段构建:

FROM golang:1.23 AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /out/app .

FROM gcr.io/distroless/static-debian12
COPY --from=build /out/app /app
USER 65532:65532
ENTRYPOINT ["/app"]

场景速查

场景 写法
利用缓存 先 COPY 依赖文件,再 COPY 源码
减小镜像 多阶段构建 + distroless/alpine
非 root 运行 USER 10001
构建参数 ARG + --build-arg
健康检查 HEALTHCHECK CMD ...
时区 安装 tzdata 或挂载 /etc/localtime
多架构 docker buildx build --platform
忽略文件 .dockerignore

易错点

相关命令