stardust-shadow

导航

Dockerfile

Kimi: Dockerfile 是用于构建 Docker 镜像的文本文件,包含一系列指令。以下是 Dockerfile 常用命令 及其功能详解:


1. 基础指令

命令 说明 示例
FROM 指定基础镜像(必须作为首条指令) FROM ubuntu:22.04
LABEL 添加元数据(如作者、版本) LABEL maintainer="user@example.com"
WORKDIR 设置工作目录(后续指令的默认路径) WORKDIR /app
USER 指定运行容器的用户(默认 root USER nginx

2. 文件操作

命令 说明 示例
COPY 从构建上下文复制文件到镜像 COPY package.json /app/
ADD 类似 COPY,但支持URL和自动解压(优先用 COPY ADD https://example.com/file.tar.gz /tmp/
RUN 在镜像构建时执行命令(生成新层) RUN apt-get update && apt-get install -y curl

3. 环境配置

命令 说明 示例
ENV 设置环境变量 ENV PATH=/usr/local/bin:$PATH
ARG 定义构建参数(仅构建阶段可用) ARG VERSION=1.0
EXPOSE 声明容器监听端口(实际映射需 docker run -p EXPOSE 80/tcp

4. 容器启动

命令 说明 示例
CMD 容器启动时默认执行的命令(可被 docker run 覆盖) CMD ["python", "app.py"]
ENTRYPOINT 定义容器启动的固定入口(通常搭配 CMD 提供默认参数) ENTRYPOINT ["nginx", "-g", "daemon off;"]

5. 数据与网络

命令 说明 示例
VOLUME 声明匿名卷(持久化数据) VOLUME ["/var/log"]
HEALTHCHECK 检查容器健康状态 `HEALTHCHECK CMD curl -f http://localhost/

6. 多阶段构建(优化镜像大小)

# 阶段一:构建应用
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

# 阶段二:运行应用
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html

7. 最佳实践

  • 减少层数:合并 RUN 命令(如 apt-get update && apt-get install)。
  • 使用 .dockerignore:排除无关文件(如 node_modules.git)。
  • 固定版本:避免使用 latest 标签(如 FROM python:3.11-slim)。
  • 最小化镜像:选择轻量级基础镜像(如 alpinedistroless)。

posted on 2025-07-14 09:14  阡年  阅读(13)  评论(0)    收藏  举报