【docker常用命令系列】Docker Build语法用法示例详解

本文详细介绍了DockerBuild命令的用法,包括其由来、语法、选项、十种主要用法示例,如构建镜像、传递参数、多阶段构建等,并对比了与DockerRun的区别。提供官方文档链接以供进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker Build语法用法示例详解

1. 由来

Docker Build是Docker提供的一个命令,用于根据Dockerfile构建自定义的镜像。通过Docker Build,可以将应用程序、环境和依赖项打包到一个可移植的容器中,使得应用在不同环境下都能以相同的方式运行。

2. 语法

docker build [OPTIONS] PATH | URL | -

docker build [OPTIONS] PATH | URL | -docker build 命令的语法说明。下面解释每个部分的含义:

  • docker build 是 Docker 命令,用于构建镜像。
  • [OPTIONS] 是可选的命令参数,可以用来自定义构建过程的行为
  • PATH 表示要构建镜像的上下文路径,通常是包含 Dockerfile 的目录
  • URL 是一个远程 Git 仓库的 URL,可以直接从远程仓库构建镜像
  • - 表示从标准输入流中读取 Dockerfile 的内容进行构建。

在使用这个命令时,您需要选择其中一种方式来指定要构建的镜像:通过本地的路径、远程的 URL 或者从标准输入流中读取 Dockerfile 的内容。

同时,您可以使用不同的选项来自定义构建过程的行为,例如设置 Dockerfile 的名称、传递构建参数、设定网络模式、控制缓存策略等。

请根据实际需求和情况,在命令中选择合适的方式和选项来构建所需的镜像。

3. 选项

选项描述
-f, --file stringDockerfile的名称(默认为’路径/Dockerfile’)
–build-arg list设置构建时的变量
–cache-from strings将镜像视为缓存源
–disable-content-trust跳过镜像验证(默认为true)
-t, --tag list镜像的名称和标签,格式为’name:tag’(默认为[])
–target string设置目标构建阶段
-m, --memory string内存限制
–network string设置构建过程中的网络模式(默认为"default")
–no-cache在构建过程中不使用缓存
–pull总是尝试拉取基础镜像的新版本
–quiet隐藏构建输出,在成功后只打印镜像ID
–rm在成功构建后删除中间容器(默认为true)
–shm-size string/dev/shm 的大小,默认值为64MB
–squash将新构建的层压缩成单个新层
–ulimit ulimitUlimit选项(默认为[])
–compress使用gzip压缩构建上下文

4. 十种主要用法及其示例

以下是Docker Build的十种主要用法及其示例:

a. 构建镜像并指定标签

docker build -t my-image:tag .

该命令会使用当前目录下的Dockerfile构建一个名为my-image的镜像,并指定tag为tag。

b. 在构建过程中传递构建参数

docker build --build-arg ARG_NAME=value -t my-image:tag .

这个命令允许您在构建过程中传递构建参数,ARG_NAME为参数名称,value为参数值。

c. 从远程Git仓库构建镜像

docker build -t my-image:tag https://github.com/username/repo.git

该命令允许您从远程的Git仓库中直接构建镜像。

d. 多阶段构建

# 第一阶段:构建应用
FROM maven:3.8.1-openjdk-11-slim AS builder
WORKDIR /app
COPY . .
RUN mvn clean install

# 第二阶段:运行应用
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/my-app.jar .
CMD ["java", "-jar", "my-app.jar"]

这个例子展示了多阶段构建,首先在一个镜像中构建应用程序,然后将构建好的结果复制到另一个镜像中并运行应用程序。

e. 使用Docker Compose构建

version: '3'
services:
  my-service:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        ARG_NAME: value
    image: my-image:tag

通过Docker Compose文件进行构建,可以指定构建上下文、Dockerfile路径以及传递构建参数。

f. 使用缓存策略

# 使用缓存
RUN apt-get update && apt-get install -y \
    package1 \
    package2

# 不使用缓存
RUN apt-get update && apt-get install -y --no-cache \
    package3 \
    package4

这个示例展示了如何使用或不使用缓存来安装软件包。

g. 构建并推送镜像到Docker仓库

docker build -t my-image:tag .
docker push my-image:tag

这个命令会构建一个名为my-image的镜像,并将其推送到Docker仓库中。

h. 通过Dockerfile目录构建镜像

docker build -t my-image:tag /path/to/dockerfile/dir

该命令允许您指定Dockerfile所在的目录路径进行构建。

i. 设置构建进度输出模式

docker build --progress=plain -t my-image:tag .

通过设置构建进度输出模式,可以选择以不同的方式显示构建过程的输出。

j. 构建无需Dockerfile的上下文镜像

docker build -t my-image:tag -

这个命令允许您从标准输入流中读取Dockerfile内容,并构建镜像。

5.其他常用命令

除了上述示例之外,还有一些其他常用的Docker Build命令,包括:

  • --no-cache:构建过程中不使用缓存。
  • -f, --file:指定使用的Dockerfile路径。
  • --target:指定多阶段构建中的目标构建阶段。
  • --progress:设置构建进度输出模式(auto, plain, tty)。

6. 详细区别

Docker Build是用于根据Dockerfile构建镜像的命令,它根据Dockerfile中的指令和构建上下文来生成镜像。与Docker Run命令不同,Docker Build只是构建镜像而不运行容器。它可以根据Dockerfile的定义自动化地执行一系列步骤,例如安装软件、配置环境等。

7. 官方链接

了解更多关于Docker Build的信息,请参考官方文档:

e中的指令和构建上下文来生成镜像。与Docker Run命令不同,Docker Build只是构建镜像而不运行容器。它可以根据Dockerfile的定义自动化地执行一系列步骤,例如安装软件、配置环境等。

7. 官方链接

了解更多关于Docker Build的信息,请参考官方文档:

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可以在容器中运行任何应用,无论是 Web 应用、数据库、消息队列等,而且 Docker 容器可以在任何环境中运行。 以下是 Docker 常用命令的详细讲解: 1. docker run:运行一个容器 语法docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 示例docker run -it ubuntu /bin/bash 2. docker ps:列出正在运行的容器 语法docker ps [OPTIONS] 示例docker ps 3. docker images:列出本地镜像 语法docker images [OPTIONS] [REPOSITORY[:TAG]] 示例docker images 4. docker pull:从仓库拉取镜像 语法docker pull [OPTIONS] NAME[:TAG|@DIGEST] 示例docker pull ubuntu:16.04 5. docker push:将本地镜像推送到仓库 语法docker push [OPTIONS] NAME[:TAG] 示例docker push myrepo/myimage:1.0 6. docker rm:删除一个或多个容器 语法docker rm [OPTIONS] CONTAINER [CONTAINER...] 示例docker rm container1 container2 7. docker rmi:删除一个或多个镜像 语法docker rmi [OPTIONS] IMAGE [IMAGE...] 示例docker rmi myrepo/myimage:1.0 8. docker build:构建一个镜像 语法docker build [OPTIONS] PATH | URL | - 示例docker build -t myimage:v1 . 9. docker exec:在正在运行的容器中执行命令 语法docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 示例docker exec -it container1 /bin/bash 10. docker stop:停止一个或多个容器 语法docker stop [OPTIONS] CONTAINER [CONTAINER...] 示例docker stop container1 container2 以上是 Docker 常用命令的详细讲解,更多命令可参考 Docker 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值