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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 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
相关文章
|
SQL 数据库连接 数据库
【SQL Server】2. 将数据导入导出到Excel表格当中
【SQL Server】2. 将数据导入导出到Excel表格当中
310 0
|
边缘计算 物联网 开发者
什么是容器
什么是容器
653 2
|
4月前
|
存储 人工智能 缓存
OSS与NAS混合云存储架构:非结构化数据统一管理实战
AI训练集管理面临数据规模爆炸与访问模式多样的挑战。传统单一存储方案存在成本高、访问慢等问题。创新混合架构融合OSS与NAS,实现热冷数据自动分层,降低存储成本62%,提升训练速度3.8倍。通过统一接口、智能调度与自动迁移,兼顾高性能与低成本,助力AI训练高效稳定运行。
198 0
|
弹性计算 运维 负载均衡
基于阿里云容器服务Kubernetes版(ACK)| 容器化管理云上应用
【8月更文挑战第3天】基于阿里云容器服务Kubernetes版(ACK)| 容器化管理云上应用
|
消息中间件 API
SofaMQ一些常用的API
SofaMQ一些常用的API
996 1
|
Kubernetes 持续交付 Docker
什么是容器?
什么是容器?
|
监控 网络协议 Unix
深入探索Linux的lsof命令
在Linux系统中,了解哪些文件被哪些进程打开对于系统管理和问题诊断是极其重要的。这正是`lsof`命令,即List Open Files,发挥其强大功能的场景。本文旨在详细介绍`lsof`的起源、底层原理、参数意义,常见用法,并详解其返回结果的每个字段含义。此外,我们将讨论在使用`lsof`命令时需要注意的事项。
|
算法 Unix 程序员
同步探秘:理解 System V 与 POSIX 信号量的差异与应用
同步探秘:理解 System V 与 POSIX 信号量的差异与应用
294 0
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes
Kubernetes 版 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的一种容器服务,它基于 Kubernetes 开源容器编排平台,为用户提供高效、可扩展的容器应用管理能力。ACK 可以帮助用户在云端轻松部署、管理和扩展容器化应用,同时提供了丰富的 Kubernetes 功能,例如自动扩展、滚动更新、负载均衡等。
178 1