Dockerfile 使用指南

Dockerfile 使用指南

一、什么是 Dockerfile?

Dockerfile 是一个文本文件,包含了一系列指令(Instruction),用于定义一个 Docker 镜像的构建过程。通过 docker build 命令,Docker 会按照 Dockerfile 中的指令自动构建镜像。


二、Dockerfile 基本结构

一个典型的 Dockerfile 包含以下几类指令:

1. 基础镜像

FROM node:18-alpine

说明:指定基础镜像,所有指令都是在该镜像基础上执行的。

2. 维护者信息

LABEL maintainer="[email protected]"

说明:为镜像添加元数据。

3. 设置工作目录

WORKDIR /app

说明:设置容器内的工作目录。

4. 拷贝文件

COPY . .

说明:将宿主机当前目录下所有文件复制到容器的当前工作目录。

5. 安装依赖

RUN npm install

说明:执行命令安装依赖。

6. 暴露端口

EXPOSE 3000

说明:声明容器运行时监听的端口。

7. 启动命令

CMD ["npm", "start"]

说明:指定容器启动时默认执行的命令。


三、常用指令汇总

指令 作用
FROM 指定基础镜像
LABEL 添加元数据
ENV 设置环境变量
RUN 执行命令
COPY 拷贝文件
ADD 类似 COPY,可自动解压 tar 文件
CMD 指定容器启动命令
ENTRYPOINT 配置容器启动程序
EXPOSE 声明端口
WORKDIR 设置工作目录
VOLUME 定义挂载点

四、构建与运行镜像

构建镜像

docker build -t my-app .

运行容器

docker run -d -p 3000:3000 my-app

五、最佳实践

  • 使用尽可能精简的基础镜像(如 alpine)。
  • 合并多个 RUN 指令以减少镜像层数。
  • 使用 .dockerignore 文件忽略无关文件。
  • 明确指定 CMDENTRYPOINT,避免容器空跑。

六、示例:Node.js 应用 Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

七、参考资料

  • Docker 官方文档
  • Dockerfile Best Practices

你可能感兴趣的:(运维,技术,nodejs,docker,容器,服务器,运维)