广告
返回顶部
首页 > 资讯 > 精选 >Docker多阶段镜像构建的实现方法
  • 671
分享到

Docker多阶段镜像构建的实现方法

2023-06-07 16:06:32 671人浏览 安东尼
摘要

小编给大家分享一下Docker多阶段镜像构建的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从Docker版本 17.05.0-ce 开始,就支持了一种新

小编给大家分享一下Docker多阶段镜像构建的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

从Docker版本 17.05.0-ce 开始,就支持了一种新的构建镜像的方法,叫做:多阶段构建(Multi-stage builds),旨在解决Docker构建应用容器中的一些痛点。在日常构建容器的场景中,经常会遇到在同一个容器中进行源码的获取,编译和生成,最终才构建为镜像。这样做的劣势在于:

  1. 不得不在容器中安装构建程序所必须的运行时环境

  2. 不得不在同一个容器中,获取程序的源码和构建所需的一些生态工具

  3. 构建出的镜像甚至包含了程序源码和一些不必要的文件,导致容器镜像尺寸偏大

当然,还有一种稍微优雅的方式,就是我们事先在外部将项目及其依赖库编译测试打包好后,再将其拷贝到构建目录中,这种虽然可以很好地规避第一种方式存在的风险点,但是也需要考虑不同镜像运行时,对于程序运行兼容性所带来的差异。

其实,这些痛点,Docker也想到了,官方提供了简便的多阶段构建 (multi-stage build) 方案。所谓多阶段构建,也即将构建过程分为多个阶段,在同一个Dockerfile中,通过不同的阶段来构建和生成所需要的应用文件,最终将这些应用文件添加到一个release的镜像中。这样做能完全规避上面所遇到的一系列问题。实现多阶段构建,主要依赖于新提供的关键字:from 和 as 。

下面举个栗子:

多阶段构建的好处不言而喻,既可以很方便地将多个彼此依赖的项目通过一个Dockerfile就可轻松构建出期望的容器镜像,并且不用担心镜像太大、源码泄露等风险。不得不说,这是一个非常不错的改进。

以上是“Docker多阶段镜像构建的实现方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

原文链接:https://xiaozhou.net/docker-multi-stage-builds-2018-08-20.html

--结束END--

本文标题: Docker多阶段镜像构建的实现方法

本文链接: https://www.lsjlt.com/news/249755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker多阶段镜像构建的实现方法
    小编给大家分享一下Docker多阶段镜像构建的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从Docker版本 17.05.0-ce 开始,就支持了一种新...
    99+
    2023-06-07
  • 多阶段构建优化Go 程序Docker镜像
    目录引言构建 Docker 镜像是否可以再减小 Docker 镜像的大小?引言 多阶段构建方式,是在 Dockerfile 中使用多个 FROM 指令,每个 FORM 指令都是一个新...
    99+
    2022-11-11
  • Docker多阶段构建最佳实践
    Docker目前在容器市场可以说是占领了大部分市场,Docker掀起了容器革命,同时也改变了现代化云平台的构建方式。尽管Docker很强大,但使用过程当中也遇到了一些问题。比如说我想要构建一个编译型语言镜像,需要先在一个Dockerfile...
    99+
    2023-06-03
  • Docker Buildx构建多平台镜像的实现
    目录写在前边构建环境启用BuildX安装qemu-user-static通知Docker使用qemu创建Buildx构建容器调整Dockerfile接收平台相关参数同时构建X86_64与ARM64镜像写在最后写在前边 记录一下前阵子在X86...
    99+
    2022-09-23
  • Docker构建镜像的两种方式实现
    目录从已有镜像更新镜像:从零开始构建镜像:从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。 从已有镜像更新镜像 从零...
    99+
    2022-11-12
  • 使用Docker镜像构建Go应用的实现方法
    目录修炼背景第一次尝试第二次尝试第三次尝试神功练成项目地址修炼背景 我夜以继日,加班加点开发了一个最简单的 Go Hello world 应用,虽然只是跑了打印一下就退出了,但是老板...
    99+
    2022-11-13
  • docker通过Dockerfile构建mysql镜像的方法
    构建Dockerfile ,路径 /docker/mysql FROM hub.c.163.com/library/mysql:5.7 #作者信息 MAINTAINER hu "**...
    99+
    2022-11-13
  • Docker进阶之构建自定义镜像实战指南
    目录一、什么是 Docker 镜像?二、自定义镜像的好处?三、构建自己的Centos四、RUN、CMD和ENTRYPOINT的区别五、【实战】Dockerfile制作tomcat镜像小结一、什么是 Docker 镜像? Docker 镜像可...
    99+
    2022-09-23
  • docker镜像的构建方式有哪些
    Docker镜像的构建方式有以下几种:1. 基于已有镜像:可以通过在已有镜像的基础上进行修改和定制来构建新的镜像。这种方式可以通过D...
    99+
    2023-09-18
    docker
  • docker 基于golang镜像构建 ssh服务的方法
    下面给大家介绍下docker 基于golang镜像构建 ssh服务的代码,具体内容如下所示: # golang:latest镜像 FROM ee23292e2826 # 作者 M...
    99+
    2022-11-12
  • Docker使用nodejs镜像构建express服务的方法
    目录1 nodejs容器的启动2 安装nodejs第三方依赖模块3 启动nodejs服务1 nodejs容器的启动 安装docker curl -fsSL https://get.d...
    99+
    2022-11-13
  • DockerBuildx构建多平台镜像的实现
    目录写在前边构建环境启用BuildX安装qemu-user-static通知Docker使用qemu创建Buildx构建容器调整Dockerfile接收平台相关参数同时构建X86_6...
    99+
    2022-11-13
  • Docker镜像发布到Docker Hub的实现方法
    目录一、Docker 官网注册一个账号,新建仓库二、制作镜像,保存修改后的容器镜像为例三、镜像上传四、镜像下载在使用docker过程中,往往会用到镜像仓库,方便管理的同时也方便在其他...
    99+
    2022-11-13
  • Docker中创建镜像的方法有什么
    本篇内容介绍了“Docker中创建镜像的方法有什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! Docker创建镜像 ...
    99+
    2023-06-07
  • Jenkins打包微服务构建Docker镜像运行的实现
    目录环境准备开始1.GitLab远程仓库创建微服务项目 2.IDEA代码推送到Gitlab 3.Jenkins创建流水线项目 4.参数化构建 5.拉取远程仓库的构建脚本 6.编写远程...
    99+
    2022-11-12
  • Jenkins构建Docker镜像并推送至Harbor仓库的实现
    目录Dockerfile文件pom.xmlJenkins配置​ spring boot项目通过Jenkins集成构建Docker镜像推送到harbor仓库并启动容器然后拉...
    99+
    2022-11-12
  • 手动构建自己的docker容器镜像实战
    目录前言一. 设置docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker...
    99+
    2023-05-15
    docker容器镜像实战 docker容器镜像
  • SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动
    场景: 由于公司项目需要,需要使用部署微服务项目,而之前都是使用tomcat部署,操作十分繁琐。最近正好在学习Docker,利用Docker容器做部署尝试 需求: 使用Do...
    99+
    2022-11-12
  • 基于jib-maven-plugin插件快速构建微服务docker镜像的方法
    目录一、说明二、插件使用三、总结四、样例工程一、说明 本文介绍基于 Maven 插件 jib-maven-plugin 实现快速构建 ...
    99+
    2023-02-27
    jib-maven-plugin构建微服务docker镜像 jib-maven-plugin微服务docker镜像
  • Dockerfile构建自定义镜像的实现
    目录前言 Dockerfile简介 Dockerfile构建镜像的流程 Dockerfile使用 前言 前面文章中使用docker运行容器使用的镜像都是从dockerhub上远程p...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作