为什么要使用Docker

为什么要使用 Docker

Docker 容器虚拟化带来的好处

传统的 LAMP 架构, 搭建起来费时费力, 需要调整很多依赖环境. 更可怕的是一旦需要做服务迁移, 一切都要重来.

Docker 提供了一种更为简单的方式, 通过容器来打包应用, 意味着迁移服务只需要在新的服务器上启动相应的容器即可. 大大减少迁移的时间和成本, 并大幅降低部署过程中可能会出现的问题和风险

Docker 在开发和运维中的优势

对于开发和运维来说, 最梦寐以求的就是一次性的创建或配置, 可以在任意环境, 任意时间让应用正常的运行. 而 Docker 就是实现这一目标的利器.

具体来说, Docker 在开发和运维中具有如下优势:

  • 更快的交付和部署
  • 更高效的资源利用
  • 更轻松的迁移扩展
  • 更简单的更新管理

Docker 与虚拟机的比较

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

Docker 容器除了运行其中的应用之外, 基本上不消耗额外的系统资源, 保证应用性能的同时, 尽量减小系统开销. 传统的虚拟机运行 N 个不同的应用就要启动 N 个虚拟机, 每个虚拟机需要单独配置独占的内存,硬盘等资源, 而 Docker 只需要启动 N 个隔离的容器, 并将应用放到容器内即可

在隔离性方面, 传统的虚拟机方式多了一层额外的隔离. 但这并不意味这 Docker 不安全. Docker 利用 Linux 系统上的多种防护机制实现了严格可靠的隔离. 从1.3版本开始, Docker 引入了安全选项和镜像签名机制, 极大地提高了 Docker 的安全性.

特性 容器 虚拟机
启动速度 秒级 分钟级
硬盘使用 MB GB
性能 接近原生 5%以上的性能损耗
系统支持量 单机支持上千个容器 一般几十个容器
隔离性 安全隔离 完全隔离