镜像概念-环境概念-容器概念

学习任何东西,需要知道它的原理,可以自己脑补它能干什么,然后搜它怎么干。

https://zhuanlan.zhihu.com/p/38552635

Docker 是世界领先的软件容器平台。

容器就是将软件打包成标准化单元,以用于开发、交付和部署。

容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。

容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够使用如一地运行。

容器赋予了软件的独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

通俗的讲:容器就是一个存放东西的地方,就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在的容器存放的东西可能更偏向于应用比如网站、程序甚至是系统环境。

理解物理机、虚拟机与容器

物理机:一栋楼一户人家,独立地基,独立花园

虚拟机:一栋楼包含多套房,一套房一户人家,共享地基,共享花园,独立卫生间、厨房和宽带

容器:一套房隔成多个小隔间(胶囊式公寓),每个胶囊住一位租户,共享地基,共享花园,还共享卫生间、厨房和宽带。

虚拟机是虚拟出一套硬件后,在其上运行一个完整操作系统。容器虚拟化的是操作系统而不是硬件,容器之间是共享一套操作系统资源的,因此容器的隔离级别会稍低一点。

Docker

Docker是世界领先的软件容器平台、

Docker提供可将任何需要运送的代码进行封装,转移,管理的标准化工具

所有的软件交付工具,开发,测试,持续集成,部署,版本管理,运行环境.....人员技能都按照docker进行统一

Docker使用Google公司推出的Go语言 进行开发实现,基于LInux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立与宿主一盒其他的隔离的进程,因此也被将其成为容器。Docker最初实现是基于LXC.Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建出杰出的软件。

用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker思想

轻量:在一台机器上运行的多个Docker容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能降低磁盘用量,并能更快地下载镜像。

标准

Docker容器基于开放式标准,能够在所有主流Linux版本,MIcrosoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。

安全

Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会涉及到整台机器。

为什么要用Docker

1、一致的运行环境:Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现:这段代码在我机器上没问题啊这类问题

2、更快速的启动时间:可以做到秒级甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。

3、隔离性:避免公用的服务器,资源会容易受到其他用户的影响。

4、弹性收缩、快速扩展:善于处理集中爆发的服务器使用压力。

5、迁移方便:可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化,导致应用无法正常运行的情况。

6、持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。

容器VS虚拟机

容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件看,因此容器更容易移植,效率也更高。

传统虚拟技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器比传统虚拟机更为方便。

容器与虚拟机(VM)总结 

 

猜你喜欢

转载自blog.csdn.net/weixin_42133481/article/details/114980606