什么是Docker?

Docker简介

Docker是什么

Docker是一个应用的应用容器引擎,基于GO语言并遵从Apache2.0协议开源.
让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的主要目标:通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的‘一次封装,到处运行’.应用组件既可以是一个WEB应用,也可以是一套数据库服务,甚至是一个操作系统或编译器

Docker与传统虚拟机的对比

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

  • Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多
  • Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器
  • Docker通过类似Git得操作赖来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低
  • Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率

为什么要使用Docker

  • Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题;—— 一致的运行环境
  • 可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。——更快速的启动时间
  • 避免公用的服务器,资源会容易受到其他用户的影响。——隔离性
  • 善于处理集中爆发的服务器使用压力;——弹性伸缩,快速扩展
  • 可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。——迁移方便
  • 使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。——持续交付和部署

虚拟化与Docker

虚拟化

虚拟化技术是一个通用的概念,在不同领域有不同的理解。在计算领域,一般指的是计算虚拟化或通常说的服务器虚拟化:虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间得不可切割得障碍,使用户可以用比原本的组态更好的方式来应用这些资源
即:对资源进行抽象,目标往往是为在同一个主机上运行多个系统或应用,从而提高系统资源的利用率,同时带来降低成本、方便管理和容错容灾等好处

Docker核心概念和安装

Docker镜像

Docker镜像类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含文件系统.例如:一个镜像可以只包含一个完整的Ubuntu操作系统环境,可以把它成为一个Ubuntu镜像

存储结构
由于 Docker 镜像是多层存储结构, 并且可以继承、 复用,
因此不同镜像可能会因为使用相同的基础镜像, 从而拥有共同的层。 由于 Docker
使用 Union FS, 相同的层只需要保存一份即可, 因此实际镜像硬盘占用空间很可
能要比这个列表镜像大小的总和要小的多

中间层镜像

为了加速镜像构建、 重复利用资源, Docker 会利用 中间层镜像。 所以在使用一段
时间后, 可能会看到一些依赖的中间层镜像。

Docker容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建得应用实例,这些容器都是相互隔离、互不可见的(容器看作简易版得linux系统环境,以及运行在期中得应用程序打包而成得应用盒子.镜像本身只读,容器从镜像启动得时候,Docker会在镜像的最上层创建一个可写层,镜像本身保持不变)

Docker仓库

Docker仓库类似于代码仓库,是Docker集中存放镜像文件得场所.根据所存储得镜像公开分享与否,Docker仓库可以分为公开仓库和私有仓库.与之容易混淆的概念是注册注册服务器(Registry).注册服务器是存放仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像.

总结

镜像—Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息;

容器—容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,Docker运行在“Docker”上;

仓库—仓库是存放镜像的地方,有类似git的版本控制,同样分为公开仓库(Public)和私有仓库(Private)两种形式;

欢迎访问个人技术博客:彬小儿的博客,里面的内容更精彩!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章