通俗易懂的告诉你容器是什么

简介: 1.Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。2.Docker包括:镜像(Image)、容器(Container)、仓库(Repository),后面会重点介绍。3.K8S,全称kubernetes,是基于容器的集群管理平台,可以先简单理解为是管理容器的:可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

明确概念


  1. Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。
  2. Docker包括:镜像(Image)、容器(Container)、仓库(Repository),后面会重点介绍。
  3. K8S,全称kubernetes,是基于容器的集群管理平台,可以先简单理解为是管理容器的:可以实现容器集群的自动化部署、自动扩缩容、维护等功能。


微信图片_20221112124703.jpg


为什么要学容器


不管是Docker还是K8s,都是目前的主流技术,而且各大云厂商都基于容器技术进行封装,提供了相关服务,我们能很方便的上手操作。


掌握了docker和k8s,我们就能告别臃肿的虚拟机,能够一次构建,四处部署、能够动态扩缩容、能够无人值守等等


容器是什么?


首先我们想一下现实生活中的容器是什么呢?

装东西用的都可以称为容器,比如“瓶子”、“箱子”、“水杯”、“集装箱”等等。

我们再想一下容器的作用是什么?说白了就是“装东西”,为了方便我们搬用。

比如把水装到瓶子里,我们只要拿好瓶子,就能轻轻松松的把水带到任何地方。


微信图片_20221112124709.jpg



计算机世界里的容器概念也一样,它的作用也是“装东西”,只不过不是装水了,而是装:代码、环境、运行时、配置文件、系统文件、设置等等。


我们可以简单理解为:保证程序运行的对象都可以装到容器中。


容器的作用


让我们能够只关注应用程序本身,不需要关注应用程序运行的环境和系统等,让环境和系统可以复用。


容器技术的特点


  1. 轻量化:只打包必要的Bin/Lib
  2. 方便移植:一次构建,随时部署
  3. 秒级部署:部署速度非常快,我们可以通过配置yaml文件设置配置参数
  4. 弹性伸缩:动态扩容,新的技术思路解决高并发问题


容器的强大之处


分享一下我的真实案例:


我做过的项目比较多,但是开发环境和框架基本是一样的,都是LNMP环境,PHP开发语言,Laravel框架开发。


当我接到开发第二个项目的需求时,我就有意识的去研究怎么减轻部署环境的工作量,我当时找到的办法是:不管阿里云还是腾讯云都有自定义镜像的功能。


我就使用云厂商的自定义镜像功能,需要2步:


  1. 把LNMP开发环境、代码、框架。Nginx配置等等制作成自定义镜像
  2. 在开发新项目申请新的服务器时,选择我制作的自定义镜像,这样当我服务器启动的时候就直接可以开发新项目了。


注意,我上面一直在提镜像这两个字。镜像是什么呢? 我的理解就是,类似我们按照电脑时的系统盘,镜像盘,是一个文件包,把我们的配置文件,系统环境等等进行打包,支持我们换一个机器进行安装。


我抛出一个问题,来证明容器的强大之处。


比如我的项目A使用的CentOS系统,我的项目B因为种种原因需要使用Ubuntu,我前面提到的自定义镜像能怎么解决这个问题呢?


答案是: 自定义镜像不支持(在云厂商不能修改系统,即源镜像依赖的是什么系统,基于自定义镜像部署的服务器就是什么系统。)但是容器技术可以。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
负载均衡 Java API
【Spring Cloud Gateway 新一代网关】—— 每天一点小知识
【Spring Cloud Gateway 新一代网关】—— 每天一点小知识
448 0
|
5月前
|
应用服务中间件 nginx Docker
静态资源管理:Nginx在Docker中的部署
部署Nginx到Docker中作为静态资源服务器是一种既简单又高效的方法,可以节省时间和资源,并能确保一致性和可扩展性。我们通过编写Dockerfile指定了基础镜像和所需指令,编写Nginx配置管理请求处理,构建自定义Docker镜像,并运行容器以启动服务。这一过程即符合开发规范,也保证了资源的高效管理和访问速度。
324 13
|
5月前
什么是AOP
AOP(面向切面编程)是一种编程范式,旨在将横切关注点(如日志、事务管理)从业务逻辑中分离,提升代码模块化与可维护性。核心概念包括:切面(封装横切逻辑)、通知(定义执行时机)、切入点(指定应用位置)、织入(整合切面与业务逻辑)。常见通知类型有前置、后置、返回、异常和环绕通知。
388 1
|
6月前
|
存储 人工智能 缓存
OSS与NAS混合云存储架构:非结构化数据统一管理实战
AI训练集管理面临数据规模爆炸与访问模式多样的挑战。传统单一存储方案存在成本高、访问慢等问题。创新混合架构融合OSS与NAS,实现热冷数据自动分层,降低存储成本62%,提升训练速度3.8倍。通过统一接口、智能调度与自动迁移,兼顾高性能与低成本,助力AI训练高效稳定运行。
310 0
|
存储 安全 Linux
Podman入门全指南:安装、配置与运行容器
Podman入门全指南:安装、配置与运行容器
10014 1
|
存储 安全 网络安全
云计算与网络安全:技术融合下的安全挑战与策略
【10月更文挑战第7天】随着云计算技术的飞速发展,企业和个人越来越依赖云服务来存储和处理数据。然而,这种便利性也带来了新的网络安全威胁和挑战。本文将探讨云计算环境下的网络安全问题,分析当前面临的安全挑战,并提出相应的防护策略。我们将通过实际案例和简单的代码示例,展示如何在云计算环境中实施有效的安全措施,以保护数据和系统免受网络攻击。
|
边缘计算 物联网 开发者
什么是容器
什么是容器
839 2
|
Kubernetes Cloud Native Docker
什么是容器:从基础到进阶的全面介绍
什么是容器:从基础到进阶的全面介绍
3194 1
|
数据采集 监控 数据可视化
深入探究ERP系统的业务智能与报表分析模块
深入探究ERP系统的业务智能与报表分析模块
402 1