1 容器

容器,是一种虚拟化技术。允许一个操作系统上用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰,这样一个独立的空间,就被称之为一个容器。

2 容器技术为什么得到快速发展

随着智能制造的推进,企业开始关注工厂的智能化转型,在工业生产领域,不同企业的工厂生产特点各不相同,而且呈现出的是零散和碎片化的个性化应用需求,部署环境也存在多样性,如虚拟化服务器、公有云、私有云等。因此,要像ERP、PLM、CRM等软件开发和应用那样,利用传统的软件开发手段针对极具个性化的工业应用场景打造通用化的应用软件,其实并不可行。而且在传统的应用开发和部署模式下,应用软件与部署环境之间存在紧耦合依赖关系,对应用在运行过程中的动态迁移,以及不同服务在不同环境中的适配带来了巨大挑战。因此,像容器这种能通过打包应用及依赖包,实现“一次开发,到处运行”的技术受到了用户的积极追捧。

3 docker容器

docker的思想就是利用操作系统资源,上面构建一些应用程序。因为操作系统的资源是共享的,所以只需要构建上层的应用即可。

4 容器优势:

  1. 创建速度快
    容器技术最大的优点是创建容器实例比创建虚拟机示例快得多,容器轻量级的脚本可以从性能和大小方面减少成本。

  2. 启动速度快
    容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。

  3. 资源占用少
    容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。

  4. 打包体积小
    容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。

  5. 简化部署
    采用容器的方式进行部署,整个系统会变得易于组合,通过容器技术将不同服务封装在对应的容器中,之后结合一些脚本使这些容器按照要求相互协作,这样操作不仅可以简化部署难度还可以降低操作风险。

  6. 提升生产力
    容器通过移除跨服务依赖和冲突提高了开发者的生产力。每个容器都可以看作是一个不同的微服务,因此可以独立升级,而不用担心同步。

  7. 运行环境可移植
    容器封装了所有运行应用程序所必需的相关的细节比如应用依赖以及操作系统。这就使得镜像从一个环境移植到另外一个环境更加灵活。比如,同一个镜像可以在Windows 或Linux 或者开发、测试或stage 环境中运行。

  8. 可扩展性
    容器的既定范式可以让用户以一种相对简单的机制来扩展应用程序。轻量级镜像、快速的启动时间、创建测试以及部署“黄金镜像”以及标准化的运行时环境这些特性,使得构建高度扩展的系统成为可能。

  9. 可独立升级
    容器之间的进程是相互隔离的,其中的基础设施亦是如此。这样其中一个容器的升级或者变化不会影响其他容器。

05-06 05:11