广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Docker大型项目容器化改造的方法
  • 726
分享到

Docker大型项目容器化改造的方法

2024-04-02 19:04:59 726人浏览 独家记忆
摘要

本篇内容介绍了“Docker大型项目容器化改造的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个几十

本篇内容介绍了“Docker大型项目容器化改造的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Docker大型项目容器化改造的方法

一个几十万行c++代码、大几十个应用程序的大型项目进行容器化。如何对原来的代码改造最小,甚至代码都不需要修改。如何静悄悄的,甚至不让业务程序员发觉。如何将业务镜像的体积做到最小。如何快速地制作一个业务镜像。这些一直是困扰我们多时的问题。容器分类的时候,如果需要对代码组织方式和架构进行调整,对于几十万行的项目将会是一个灾难。容化改造完后,如果开发模式变化太剧烈,无可避免会面临几十个、上百个业务程序员重新学习适应的过程,成本惊人。业务镜像的大小直接影响对现场更新容器方便与否的问题,特别是当项目在海外,网络速度不是很快的情况下。自动化、快速的镜像制作是能否进行敏捷开发的关键。

一、如何开始

如何将一个运行于linux的项目挪到容器里面去运行通常是遇到的第一个问题。网上找一个带GCc编译器和linux操作系统的基础镜像,基于这个镜像可以先制作一个编译和ci检查(代码检查、运行单元测试等等)的构建镜像。利用构建镜像进行编译和ci检查,然后基于基础镜像制作运行镜像,将编译好的库和可执行程序拷贝进去(通过dockerfile)。这样一个最简单镜像就制作好了。

Docker大型项目容器化改造的方法

上面方法做出来的业务镜像可以运行,但有两个问题,制作的时间特别长(我们项目需要一个小时)、镜像的业务层特别大(我们项目有1个g)。两个问题不是特别严重,但如果项目拿去商用就是一个很麻烦的问题。

二、容器分层

容器分层的概念是docker的核心概念,就是支持每个容器可以“继承”自另外一个容器。这里的继承跟面向对象里的继承应该是同一个概念。这样除了可以带来“继承”特性的好处,底层镜像变动时,不需要去更新上层的镜像,这样就可以少更新很多东西。的确很妙,面向对象的继承我都没觉得有这么好用!受这个特性影响,我们将项目用到的第三方库单独提出来做成一层。制作的流程也相应地变成下图所示。

Docker大型项目容器化改造的方法

Docker大型项目容器化改造的方法

虽然过程多了一步,但效果也是立竿见影的,业务层的制作时间从原来1个小时缩短为12分钟,大小也变为100m左右。

三、业务容器分类

在docker最佳实践的建议里面,建议一个容器最好只跑一种程序,或者一类程序。像原来那样,一个容器跑几十个进程一定是不合适的。分类清晰的容器也便于管理和进行各种操作。同时,在微服务的最佳实践里面,建议将项目的代码分割成一个个的微服务。每个微服务的代码由不同的团队维护,各自独立。我们先暂时不讨论这种方式的优缺点。原先的项目是一个几十万行、几十个程序的大项目,有几十个人开发人员,有无数的公共模块,每个模块间相互引用也很普遍,每个程序由数量不等的模块来组成。如果按上面的建议来进行docker的业务分类,无疑会给项目带来巨变,并且涉及组织架构的大调整,几乎是一个不可能的任务。那么如何做既可以对容器进行分类,又保持原有的开发模式不变。有时候察觉不到改变才是推进一项新技术的最佳方式。

方法其实也很简单,容器里面有一个叫docker-entrypoint.sh的角本,管理容器启动后要启动哪些进程。上面我们已经制作了一个项目统一的镜像,在分类的时候,我们只要根据不同类型容器,修改不同的docker-entrypoint.sh来启动不同类型的进程就可以了。要配合设置不同的环境变量,不同的配置文件等等。当然,这一切都很容易!

“Docker大型项目容器化改造的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Docker大型项目容器化改造的方法

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

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

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

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

下载Word文档
猜你喜欢
  • Docker大型项目容器化改造的方法
    本篇内容介绍了“Docker大型项目容器化改造的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个几十...
    99+
    2022-10-19
  • docker修改容器内存大小的实现方式
    目录前言1.docker内存限制的两种方式2.方式一:-m参数限制3.方式二:修改hostconfig.json文件限制1.查找容器对应的hostconfig.json文件2.停止d...
    99+
    2022-11-13
  • 用VScode编写C++大型项目的方法步骤
    目录vscode远程开发配置选用vscode的原因配置流程安装C++扩展​clang-format格式化代码安装clang-format创建clang-format文件vscode支...
    99+
    2022-11-13
  • Docker容器的自动化监控实现方法
    这篇文章主要讲解了“Docker容器的自动化监控实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker容器的自动化监控实现方法”吧!文章摘要 近年来容器技术不断成熟并得到应用。D...
    99+
    2023-06-19
  • docker修改容器配置文件的3种方法总结
    目录run时候已经进行绑定操作修改未绑定的配置文件拷贝容器内外的文件操作修改对外端口等总结run时候已经进行绑定操作 在启动容器的时候可以通过 -v双向绑定本地的某文件,这样任意修改...
    99+
    2022-11-13
  • Docker容器化应用Node.js服务的方法是什么
    本文小编为大家详细介绍“Docker容器化应用Node.js服务的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Docker容器化应用Node.js服务的方法是什么”文章能帮助大家解决疑惑,下面...
    99+
    2022-11-30
    docker node.js
  • Docker容器可视化监控中心的搭建方法
    小编给大家分享一下Docker容器可视化监控中心的搭建方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!准备镜像adviser:负责收集容器的随时间变化的数据in...
    99+
    2023-06-07
  • Spring源码解析容器初始化构造的方法是什么
    这篇“Spring源码解析容器初始化构造的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring源码解析容器初...
    99+
    2023-07-02
  • 使用Docker将容器目录挂载到主机上的实现方法
    目录一、基本介绍二、将容器目录挂载到主机一、基本介绍 这里我们主要介绍 Docker 里的一个命令,叫做 --mount,其本质上来说和 --volume 命令并没有太大区别,因为这...
    99+
    2022-11-13
  • Docker中容器文件拷贝及目录挂载的方法是什么
    本篇内容介绍了“Docker中容器文件拷贝及目录挂载的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Docker:容器文件拷贝目标...
    99+
    2023-07-05
  • docker已启动容器修改添加端口映射的两种方法
    目录简述一、先提交,在配置1、先将容器提交为镜像2、创建新的容器并运行二、 修改配置文件1、关闭docker服务2、修改hostconfig.json3、修改config.v2.js...
    99+
    2022-11-13
    docker修改端口映射 docker添加端口映射 docker 端口映射
  • 把spring boot项目发布tomcat容器(包含发布到tomcat6的方法)
    spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 既然需要打包成war包项目,首先需要在pom.xml文件中修改打...
    99+
    2023-05-30
    spring boot tomcat
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作