Docker实践

目录

容器

Docker是世界领先的软件容器平台,Docker的理念是架构与容器之上的。
概括来说,容器就是将软件打包成标准化单元,以用于开发、交付和部署:

  • 容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行环境、系统工具、系统库和设置。
  • 容器化软件适用于就要Linux和Windows的应用,在和人环境中都能够始终如一的运行。
  • 容器富裕了软件独立性,免受外在环境诧异的影响(比如开发环境、测试环境、生产环境),减少团队间在相同基础设施上运行不同软件时的冲突。
    容器FAQ

Docker是什么

Docker提供了一种打包、输送、运行任意应用的容器将解决方案。Docker是世界领先的软件容器平台。
Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。
用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

docker

Docker的思想: 集装化标准化:①运输方式、②存储方式、 ③API接口隔离

容器 VS 虚拟机

容器虚拟化的是操作系统而不是硬件,容器之间是共享一套操作系统资源,应用进程直接运行宿主的内核;虚拟机技术是虚拟出一套硬件之后,在其上运行一个完整的操作系统,在系统上运行所需应用进程。相较来说容器的隔离级别低一些,但是容器更容易移植,效率也更高、更轻量。

VM

Docker

容器与VM对比

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 MB GB
性能 接近原生 弱于
系统支持量 单机千级 几十
  • 容器是一个应用层抽象,用于将代码和依赖资源打包在一起。 多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行 。与虚拟机相比, 容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动 。
  • 虚拟机(VM)是一个物理硬件层抽象,用于将一台服务器变成多台服务器。 管理程序允许多个VM在一台机器上运行。每个VM都包含一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此占用大量空间。而且VM启动也十分缓慢。

Docker和VM两者有着不同的使用场景,虚拟机更擅长彻底隔离整个运行环境,例如云服务提供商通畅采用虚拟技术隔离不同的用户。Docker通常用于隔离不同的应用,例如前端、后端以及数据库。容器与虚拟机两者是可以共存的

Docker容器特点

  • 轻量,在一台机器上运行的多个Docker容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。
  • 标准,Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
  • 安全,Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。

Docker优势

  • 一致的运行环境: docker镜像提供了除内核外完整的运行时环境,可以确保开发环境、测试环境的一致性,可移植性。
  • 更快的启动时间: 可以做到秒级启动时间,节约了开发、测试、部署时间。
  • 隔离性: 避免公用的服务器,资源会容易受到其他用户影响。
  • 弹性伸缩、快速扩展: 善于处理集中爆发的服务器使用压力。
  • 迁移方便: 可以快速将一个平台上运行的应用迁移到另一个平台,不用担心运行环境变化导致应用无法正常运行。
  • CI/CD: 通过Docker定制应用镜像实现持续集成、持续交付、部署。

本文链接: http://kiritor.github.io/2018/02/02/Docker/

-- EOF --

如果文章对您有用请随意打赏,谢谢支持!