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

这篇具有很好参考价值的文章主要介绍了【docker常用命令系列】Docker Build语法用法示例详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 string Dockerfile的名称(默认为’路径/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 ulimit Ulimit选项(默认为[])
–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的信息,请参考官方文档:文章来源地址https://www.toymoban.com/news/detail-851212.html

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

7. 官方链接

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

  • Docker Build官方文档

到了这里,关于【docker常用命令系列】Docker Build语法用法示例详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker logs命令用法详解

    docker logs官档如下: docker logs | Docker Documentation 2.1 help命令 2.2 日志详情 --details 显示全部的日志详情。 2.3 跟踪日志输出 -f  --follow 2.4 显示最近的行数 -n  --tail 2.5 显示日志时间戳 -t 2.6 显示时间戳以来的日志 -since 2.7 显示指定时间戳之前的日志 --until 这个命令其实和上面的–

    2024年02月03日
    浏览(32)
  • Docker | Docker常用命令

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容: Docker | Docker常用命令 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家访问 大家

    2024年02月05日
    浏览(46)
  • Docker实战:Docker常用命令

    参考:https://blog.csdn.net/weixin_45509582/article/details/125599521 输出依次为,进程pid、容器ID、容器名、存储work路径,即可确定是哪个容器。 参考:https://blog.csdn.net/sebeefe/article/details/123732823

    2024年02月12日
    浏览(46)
  • 【Docker | 2】Docker常用命令介绍

      Docker 是一种轻量级的容器化技术,常用于构建、打包、部署和运行应用程序。以下是一些常用的 Docker 命令及其详细介绍: 语法介绍 运行一个 Docker 容器。 OPTIONS :可选参数,用于配置容器的行为。 IMAGE :必选参数,指定要运行的容器镜像。 COMMAND :可选参数,覆盖容器

    2024年02月14日
    浏览(46)
  • Docker笔记 Docker架构与常用命令

    大家好 我是积极向上的湘锅锅💪💪💪 首先Docker由三大部分组成 Clients:客户端 通过docker的客户端操作命令,然后命令发送到daemon(守护进程)里面去执行操作 Hosts:主机 主机包括俩个部分,分别是 local host 和 remote host ,意思是本机和远程的机器。 而在local host这个部分里面

    2024年02月13日
    浏览(43)
  • Docker系列--在容器中安装JDK的方法(有示例)

    原文网址:Docker系列--在容器中安装JDK的方法(有示例)_IT利刃出鞘的博客-CSDN博客 说明 本文介绍如何在容器中安装JDK。 为什么要装JDK? JDK里有很多工具,比如jps、jstack、jmap等,可以排查问题。 本文目标 给Ubuntu系统里的docker容器安装JDK8,可以调用其jps命令。 可以通过此命令

    2024年02月04日
    浏览(50)
  • ubuntu安装docker及docker常用命令

    docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 容器的数据卷。理解为一个文件或者一个目录。 宿主机(安装docker的机器)和容器,容器和容器之间可以有一块共同的空间,她们所有都可以对这块空间操作,写入,修改,删除等等,一处修改,多

    2024年02月04日
    浏览(46)
  • 27-Docker-常用命令详解-docker tag

    前言 本篇来学习docker tag 命令 docker tag 作用:标记本地镜像,将其归入某一仓库。 语法格式 使用示例 打了新的 TAG 虽然会多了一条记录,但是从 IMAGE ID 可以得知他们是同一个镜像

    2024年02月17日
    浏览(38)
  • 20-Docker-常用命令详解-docker attach

    前言 本篇来学习docker attach命令 docker attach 作用:进入容器正在执行的终端 语法格式 options 说明 option 说明 –detach-keys 指定退出attach模式的快捷键序列,默认是 CTRL-p –no-stdin 是否挂你标准输入,默认是打开 –sig-proxy 是否代理收到的系统信号给应用进程,默认为true 使用示例

    2024年02月09日
    浏览(102)
  • 36-Docker-常用命令详解-docker inspect

    前言 本篇来学习docker inspect命令 docker inspect 作用:获取容器/镜像的元数据。 options说明 option 说明 -f 指定返回值的模板文件 -s 如果类型为容器,则显示文件总大小 –type 返回指定类型的JSON 使用示例 获取容器ip 获取容器mac地址 获取容器日志路径 获取容器镜像名 获取容器目

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包