2026 年 9 月
123456789101112131415161718192021222324252627282930
当天有发布文章
运行状态
CPU 占用25.6% · 4 核心
内存占用42.3% · 6.5 GB / 15.4 GB
磁盘占用12.5% · 110.8 GB / 889.7 GB
系统负载 0.51 / 0.65 / 0.74
持续运行 11 天 6 小时 3 分钟
操作系统 Debian 13
WEB 服务器 PHP 8.2.30
通信协议 HTTP/1.1
访客信息
您的 IP 216.73.217.68
浏览器 未知浏览器
您的设备 桌面设备
连接类型 HTTPS · GET
服务语言 未知
当前域名 moji.565882.xyz
站点统计
8文章数目
213评论数目
1295累计访问
396运行天数

Docker Build 命令详解

ydmo 26 阅读 Docker 备忘录

Docker Build 命令详解

docker build 命令用于通过 Dockerfile 构建 Docker 镜像,是 Docker 镜像构建过程的核心工具,允许用户自动化地构建并定制镜像。

基本格式

docker build [OPTIONS] PATH | URL | -

其中:

  • PATH:指定 Docker 构建上下文的路径,可以是一个本地目录、URL 或 -
  • URL:指定一个远程 URL 作为构建上下文
  • -:表示从标准输入读取 Dockerfile

常用选项及详细说明

-t--tag

为构建的镜像指定标签(名称:标签)。标签是镜像的唯一标识,通常采用 name:tag 的格式。如果没有提供 tag,默认会使用 latest 标签。

示例

docker build -t myapp:latest .

这会创建一个名为 myapp,标签为 latest 的镜像。

-f--file

指定一个 Dockerfile 文件。如果没有指定,默认会在当前目录查找 Dockerfile。这可以让你指定不同的 Dockerfile,例如在多环境构建中使用不同的文件。

示例

docker build -f ./Dockerfile.prod -t myapp:prod .

这会使用 Dockerfile.prod 文件来构建镜像。

--build-arg

用于在构建过程中传递参数。可以在 Dockerfile 中使用这些构建参数。

示例

docker build --build-arg VERSION=1.0 -t myapp:v1 .

在 Dockerfile 中可以使用 ARG VERSION 来访问该参数:

ARG VERSION
RUN echo $VERSION

--no-cache

禁止使用缓存的中间层,这意味着每次构建时都会重新执行每个构建步骤。这对确保镜像是完全最新的很有帮助,特别是在需要更新依赖时。

示例

docker build --no-cache -t myapp:latest .

--pull

强制每次构建时都从 Docker Hub 拉取最新的基础镜像,而不是使用本地缓存的镜像。

示例

docker build --pull -t myapp:latest .

--quiet-q

docker build 在构建时只输出镜像的 ID,而不会显示详细的构建日志。

示例

docker build -q -t myapp:latest .

--target

用于指定多阶段构建中的构建目标阶段(Stage)。这在使用多阶段构建时非常有用。

示例

docker build --target build_stage -t myapp:build .

--rm

默认情况下,Docker 在构建完成后会删除中间容器。如果不想删除中间容器,可以通过 --rm=false 来保持它们。

示例

docker build --rm=false -t myapp:latest .

--squash

这个选项在 Docker 1.13 后提供,允许合并镜像的多个层(Layer)为一个单一的层,以减少最终镜像的大小。

示例

docker build --squash -t myapp:latest .

-o

用于设置构建的输出位置,输出格式可以是 type=docker 或 type=tar。例如,可以将构建的内容保存为 tar 文件。

示例

docker build -o type=tar,dest=output.tar .

-c

用于设定构建的并行程度。通常用于通过并行处理来加速构建过程。

示例

docker build -c 4 -t myapp:latest .

构建上下文

构建上下文是构建过程中的目录或路径,Docker 会从中获取文件以及构建时所需的资源(包括 Dockerfile)。常见的构建上下文有:

  • 当前目录 (.):指定当前目录作为构建上下文
  • 路径:指定本地路径,作为构建上下文
  • URL:也可以使用 Git 仓库的 URL 作为构建上下文。例如:
docker build https://github.com/myrepo/myapp.git

构建过程示例

假设我们有如下简单的 Dockerfile:

# 基础镜像
FROM node:14

# 工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 文件
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["npm", "start"]

我们可以使用以下命令构建镜像:

docker build -t myapp:latest .

构建多阶段镜像

多阶段构建允许你在一个 Dockerfile 中使用多个阶段,这样可以优化镜像大小。通过 --target 选择指定阶段。

示例 Dockerfile

# 第一阶段:构建应用
FROM node:14 AS build

WORKDIR /app

COPY . .

RUN npm install
RUN npm run build

# 第二阶段:运行应用
FROM node:14

WORKDIR /app

COPY --from=build /app/dist /app

EXPOSE 3000
CMD ["npm", "start"]

构建命令

docker build -t myapp:multi-stage .

总结

docker build 是构建 Docker 镜像的关键命令,灵活地配合不同选项,可以实现从简单构建到复杂的多阶段构建。在实际使用中,可以通过优化构建步骤、使用缓存和并行构建等手段提高构建效率并减少最终镜像的体积。

参考链接

  1. docker build 命令docker build 命令用于通过 Dockerfile 构建 Docker 镜像。它 - 掘金

关注公众号获取最新资源

存储小窝.png

暂无评论

发表评论