文章目录
- 构建docker file 镜像
- 常用命令速查表
- 一、基础指令(指定镜像和执行命令)
- 二、构建上下文管理
- 三、设置镜像内部环境
- 四、容器运行配置
- 五、多阶段构建(可选进阶)
构建docker file 镜像
docker build -f dockerdile -t image_name:tag .
常用命令速查表
类别 | 命令 |
---|
基础镜像 | FROM |
构建命令 | RUN , CMD , ENTRYPOINT |
文件操作 | COPY , ADD |
配置环境 | ENV , ARG , WORKDIR , LABEL , USER |
网络存储 | EXPOSE , VOLUME , HEALTHCHECK |
多阶段构建 | FROM ... AS , COPY --from=... |
一、基础指令(指定镜像和执行命令)
命令 | 作用说明 |
---|
FROM | 指定基础镜像(必须是第一条) |
RUN | 在镜像构建时执行命令(如安装软件) |
CMD | 容器启动时默认执行的命令(可被 docker run 覆盖) |
ENTRYPOINT | 容器启动时执行的命令(不易被覆盖) |
区别 CMD 和 ENTRYPOINT:
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT ["nginx"]
CMD
可被覆盖ENTRYPOINT
更强制性,适合构建“专用容器”
二、构建上下文管理
命令 | 作用说明 |
---|
COPY | 将本地文件复制进镜像(常用于源码、配置) |
ADD | 类似 COPY,但支持解压 .tar 文件和 URL 下载(不推荐乱用) |
示例:
COPY ./app /usr/src/app
三、设置镜像内部环境
命令 | 作用说明 |
---|
WORKDIR | 设置工作目录(后续命令的执行路径) |
ENV | 设置环境变量 |
ARG | 构建参数(只在构建时可用) |
LABEL | 添加元数据(作者、描述等) |
示例:
ENV LANG C.UTF-8
WORKDIR /app
ARG VERSION=1.0
LABEL maintainer="you@example.com"
四、容器运行配置
命令 | 作用说明 |
---|
EXPOSE | 声明容器运行时监听的端口(不会自动映射) |
VOLUME | 声明挂载点(用于数据持久化) |
USER | 指定运行容器时的用户 |
HEALTHCHECK | 设置健康检查命令 |
SHELL | 改变默认 shell,比如从 sh 切换成 bash |
五、多阶段构建(可选进阶)
命令 | 说明 |
---|
AS | 配合 FROM 使用,用于多阶段构建中的命名阶段 |
示例:
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myappFROM alpine
COPY --from=builder /app/myapp /app/