Dockerfile 构建上下文 build -f 选项 加快构建速度

 理解构建上下文(Build Context)

  • 当运行 docker build 命令时,当前工作目录被称为构建上下文,docker本身会将工作目录里面所有的文件都上传给docker daemon,在这个基础之上再去构建容器镜像。(如果你在根目录去构建容器镜像,将根目录作为构建上下文,那么会相当的慢,它会去检索我所在的当前目录,会将当前目录的所有内容都传输给docker daemon,这样构建的效率会非常的底下)
  • docker build 默认查找当前目录的 Dockerfile作为构建输入,也可以通过-f指定 Dockerfile。

       docker build -f ./Dockerfile

  • 当docker build 运行时,首先会把构建上下文传输给docker daemon,把没用的文件包含在构建上下文时,会导致传输时间长,构建需要的资源多,构建出的镜像大等问题。

       试着到一个包含文件很多的目录运行下面的命令,会感受到差异:

       (1)docker build-f $GOPATH/src/github.com/cncamp/golang/httpserver/Dockerfile

       (2)docker build $GOPATH/src/github.com/cncamp/golang/httpserver/

       可以通过.dockerignore文件从编译上下文排除某些文件。

  • 因此需要确保构建上下文清晰,比如创建一个专门的目录放置 Dockerfile,并在目录中运行docker build。
[root@jenkins dockerfile]# docker build -f ./Dockerfile -t java-demo:v1.1 .
[+] Building 0.1s (7/7) FINISHED                                                                                                                                   docker:default
 => [internal] load build definition from Dockerfile                                                                                                                         0.0s
 => => transferring dockerfile: 311B                                                                                                                                         0.0s
 => [internal] load metadata for docker.io/library/openjdk:8-jdk-alpine                                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                                            0.0s
 => => transferring context: 2B                           

docker build -f docker/Dockerfile  -t  镜像名字(给镜像起一个名字):v1.1.1 .     

后面这个点.  是打包镜像(这行命令最后有一个‘空格 点’不能忽略)

需要注意的是,在 docker build 命令接收的参数中,提供给 docker build 命令的 -f 选项应该 Dockerfile 路径名。如果 Dockerfile 文件就叫 Dockerfile 那么文件名可省略,如果 Dockerfile 文件就在当前目录下,那么 -f 选项可省略。

docker build -f ./Dockerfile -t xxx .
# 等同于
docker build -f . -t xxx .
# 等同于
docker build -t xxx .

如果你的 Dockerfile 在别处,而且还不叫 Dockerfile 那么你的 docker build 命令就应该形如如下形式:

docker build -f /xxx/yyy/zzz -t xxx .

在上面的例子中,你的 Dockerfile 在 /xxx/yyy 下,名为 zzz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/583147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

认识Linux及一些基本

目录 linux简介: 1. 发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 企业应用现状 Linux在服务器领域的发展 Linux在桌面领域的发展 Linux在移动嵌入式领域的发展 Linux在云计算/大数据领域的发展 4. 发行版本 Debian Ubuntu 红帽企业级Linux Cent…

数据结构复习指导之数组和特殊矩阵

文章目录 数组和特殊矩阵 考纲内容 复习提示 前言 1.数组的定义 2.数组的存储结构 3.特殊矩阵的压缩存储 3.1对称矩阵 3.2三角矩阵 3.3三对角矩阵 4.稀疏矩阵 5.知识回顾 数组和特殊矩阵 考纲内容 (一)栈和队列的基本概念 (二&a…

ubuntu neo4j 下载与配置(一)

neo4j 官方下载页面 https://neo4j.com/deployment-center/#community 进入页面之后,往下滑 咱们在下载neo4j时,官方可能要咱们填写一下个人信息,比如:姓名组织结构邮箱等: 咱们可以观察一下,ne4j的下载链…

iOS 实现类似抖音翻页滚动效果

这里是效果图 参考抖音的滚动效果,需要我们在结束拖动的时候,动画设置偏移量 这里有一个注意点,由于我们是在拖动结束的时候,手动改变tableview的偏移量, 改变了tableView 自身原有的的滚动效果,所以我们…

C++奇迹之旅:类和对象const成员static关键字友元内部类

文章目录 📝const成员🌠 const 成员函数是什么?🌠 取地址及const取地址操作符重载 🌉static成员🌠概念🌠static特性🌉static小题 🌠友元🌉 友元函数&#x1f…

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动 解决步骤: 1.去以下的目录中删掉.npmrc文件(只在C:\User.npmrc) 2.清除缓存,使用npm cache verify 不要用npm cache clean --force,容易出现npm WAR…

国产AI大模型加速“上车”

上海白领刘先生,坐上他的汽车主驾,向右扭头说:“打开那窗户。”话音刚落,副驾驶的车窗自动开了。 这辆车搭载了基于国产AI大模型的智能系统,就像有了人的大脑和神经网络,通过学习提升语音、视觉等多模态感…

VCSA6.7重置root密码

VCSA6.7重置root密码 1、登录VCSA所运行的ESXI主机 2、打开VCSA虚拟机Web控制台,先拍摄一个快照,然后重启虚拟机,在如下界面按"e" 3、找到linux开头的段落,在末尾追加rw init/bin/bash; 4、输入完成后,按&…

《异常检测——从经典算法到深度学习》27 可执行且可解释的在线服务系统中重复故障定位方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

溪谷软件:游戏联运有多简单?

游戏联运,即游戏联合运营,是一种游戏运营模式,涉及到多个平台或公司共同推广和运营同一款游戏。对于开发者而言,游戏联运的简化程度可能因具体情况而异,但以下是一些因素,使得游戏联运在某种程度上变得更加…

J9inceptionv3

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊# 前言 上周学习了inceptionv1网络,这周学习其改进版本inceptionv3 简介 Inception v3是谷歌研究团队提出的深度卷积神经网络架构,通过…

Docker-compose 简单介绍

目录 一 Docker-compose与 Docker Swarm 1,docker-compose 出现的意义 2, Docker Compose 是什么 3,Docker Swarm 是什么 3,Docker Compose Docker Swarm 主要区别 二 Docker-compose 简介 1&#xff0…

鸿蒙开发接口Ability框架:【@ohos.ability.dataUriUtils (DataUriUtils模块)】

DataUriUtils模块 DataUriUtils模块提供用于处理使用DataAbilityHelper方案的对象的实用程序类的能力,包括获取,添加,更新给定uri的路径组件末尾的ID。 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口&#x…

windows ubuntu sed,awk,grep篇,8,Awk 语法和基础命令

目录 51.Awk 命令语法 52.Awk 程序结构(BEGIN,body,END)区域 53.打印命令 54.模式匹配 Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。即便是输入文件没有一定的格式&a…

在使用ChatGPT之前,你真的知道这些吗?|TodayAI

当OpenAI在2022年11月发布ChatGPT时,它标志着技术领域的一次重大突破。ChatGPT是一个高级AI聊天机器人,它的功能几乎令人难以置信。过去的AI技术多年来一直在逐步发展,早期版本通常只能生成毫无意义的文本或质量较差的图片。这些早期的尝试虽…

安装 AngularJS

安装 AngularJS 文章目录 安装 AngularJS1. 使用在线 cdn2. 使用依赖管理工具 npm 1. 使用在线 cdn <!-- 1. 引入在线地址 --> <script src"http://code.angularjs.org/1.2.25/angular.min.js"></script><!-- 2. 下载到本地&#xff0c;引入文…

集合系列(二十二) -一文到你搞懂二叉树实现

一、介绍 在前面的文章中&#xff0c;我们对树这种数据结构做了一些基本介绍&#xff0c;今天我们继续来聊聊一种非常常用的动态查找树&#xff1a; 二叉查找树。 二叉查找树&#xff0c;英文全称&#xff1a;Binary Search Tree&#xff0c;简称&#xff1a;BST&#xff0c;…

js cookie和它的写入,读取,删除

什么是cookie Cookie 是直接存储在浏览器中的一小串数据&#xff0c;它们是 HTTP 协议的一部分 Cookie 通常是由 Web 服务器使用响应 Set-Cookie HTTP-header 设置的。然后浏览器使用 Cookie HTTP-header 将它们自动添加到&#xff08;几乎&#xff09;每个对相同域的请求中。…

升级价值主张 用友帮企业找到乘风破浪的“密码”

近期&#xff0c;用友发布了其战略级产品用友BIP的全新价值主张&#xff0c;将其从原来的“企业数智化 用友BIP”升级为“用友BIP 成就数智企业”。用友这次价值主张升级看似变动不大&#xff0c;实则大有深意。 顺势而为的主动升级 从当前数智化发展的形势来看&#xff0c;各…

牛客NC320 装箱问题【中等 动态规划,背包问题 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/d195a735f05b46cf8f210c4ad250681c 几乎完全相同的题目&#xff1a; https://www.lintcode.com/problem/92/description 思路 动态规划都是递归递推而来。php答案是动态规划版本&#xff0c;递归版本有 测试用…
最新文章