虚拟机已死, 容器才是未来. 那么, 容器(以 Docker 为例), 凭什么取代虚拟机? Docker 和虚拟机又有哪些区别, Docker 又有哪些优势呢?
Docker 和虚拟机的区别
作为一种轻量级的虚拟化方式, Docker 在运行应用上跟传统的虚拟机方式相比具有显著优势.
安装 Docker
Docker 支持在主流的操作系统平台上使用, 包括 Ubuntu,CentOS,Windows 以及 MacOS 系统等. 当然, 在 Linux 系列平台上是原生支持, 使用体验更好. 以下是 Docker 支持部分系统的截图.
安装过程就不在多述, 官网有详细介绍 https://www.docker.com/community-edition.
Docker 的三大核心概念, 镜像(Image), 容器(Container), 仓库(Repository).
三者之间的关系可以由上图看出, 简单总结起来仓库是存放镜像的, 把镜像启动起来后就是容器.
镜像(Image)
Docker 镜像 (Image) 类似于虚拟机镜像, 可以将它理解为一个面向 Docker 引擎的只读模板, 镜像是创建 Docker 容器的基础. 通过版本管理和增量的文件系统, Docker 提供了一套十分简单的机制来创建和更新现有的镜像, 用户甚至可以从网上下载一个已经做好的应用镜像, 并通过简单的命令就可以直接使用.
官方的镜像仓库地址: https://hub.docker.com/ .
容器(Container)
Docker 容器 (Container) 类似于一个轻量级的沙箱, Docker 利用容器来运行和隔离应用. 容器是从镜像创建的应用运行实例, 可以将其启动, 开始, 停止删除, 而这些容器都是相互隔离, 互不可见的. 简单地说, 容器是镜像的一个运行实例, 所不同的是, 它带有额外的可写文件层.
仓库(Repository)
仓库 (Repository) 是集中存放镜像的地方. 一个容易与之混淆的概念是注册服务器(Registry). 实际上注册服务器是存放仓库的具体服务器, 每个服务器上可以有多个仓库, 而每个仓库下面有多个镜像. 仓库又分公共仓库和私有仓库.
Docker 能改变什么? 总结起来有以下几个方面.
更高效的利用系统资源. 相较于虚拟机 docker 容器的性能更好, 能起更多的应用.
一致的运行环境. 开发, 测试, 在线确认, 在线的运行环境可以保持一致都统一存储为镜像, 在不同的环境运行相同的镜像即可, 可以保证各个阶段应用运行环境的一致性.
持续交付和部署. 由于各个运行环境的一致性, 使得自动化测试环境更加方便快捷, 持续交付和部署也变的更加便捷.
更轻松的迁移系统. 因为应用运行的依赖环境都在 docker 容器内, 所以进行系统迁移, 从一个环境迁移到另外一个环境, 更加方便和快捷, 只需将镜像文件拷贝到对应的环境, 启动起来即可. 不在需要繁琐的配置各种依赖的软件及系统版本, 使得迁移更加高效顺畅.
来源: http://www.bubuko.com/infodetail-2596501.html