Dockerfile 是 Docker 镜像构建过程中使用的脚本文件,包含了一系列指令和参数,用于定义镜像的构建流程。
以下是常见的 Dockerfile 命令及其作用:
- FROM:指定基础镜像
例如:
FROM ubuntu:20.04
- RUN:在容器内执行命令
例如:
RUN apt-get update && apt-get install -y nginx
- COPY/ADD:将本地文件复制到容器内
例如:
COPY index.html /usr/share/nginx/html/
- WORKDIR:设置工作目录
例如:
WORKDIR /app
- EXPOSE:暴露端口
例如:
EXPOSE 80
- CMD/ENTRYPOINT:设置启动命令
例如:
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT ["nginx", "-g", "daemon off;"]
- ENV:设置环境变量
例如:
ENV NODE_ENV=production
下面给出一个完整的 Dockerfile 示例,该示例基于 Ubuntu 20.04 镜像构建一个 Node.js Web 应用程序镜像,其中包含了 Node.js 环境、npm 包管理工具以及应用程序代码。
# 使用官方提供的 Node.js 14.x 镜像作为基础镜像
FROM node:14
# 设置工作目录为 /app,并将当前目录下所有文件复制到 /app 目录下
WORKDIR /app
COPY . /app
# 安装应用程序依赖
RUN npm install
# 暴露 3000 端口
EXPOSE 3000
# 设置启动命令为 `npm start`
CMD ["npm", "start"]
这个 Dockerfile 的作用是:
使用官方提供的 Node.js 14.x 镜像作为基础镜像。
将当前目录下所有文件复制到容器内的 /app 目录下。
在容器内执行
npm install
命令,安装应用程序依赖。暴露容器内的 3000 端口,以允许外部网络连接到该端口上。
设置启动命令为
npm start
。