容器整体性理解

  1. 容器的思想是什么?
    容器是集装箱的思想,容器消除了开发、测试、生产环境的不一致性。
  2. 容器和虚拟机的区别?
    容器在 Host 操作系统的用户空间中运行,与操作系统的其他进程隔离。这一点显著区别于的虚拟机。
  3. 容器的定义?
    容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。
  4. 容器的组成?
  • 应用程序本身
  • 依赖:比如应用程序需要的库或其他软件
  1. 为什么需要容器?容器到底解决的是什么问题?
    容器使软件具备了超强的可移植能力。
  2. 容器相比于虚拟机的优势?
    由于所有的容器共享同一个 Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系统,所以容器部署和启动速度更快,开销更小,也更容易迁移。
  3. 容器的特性?
  • 打包对象:任何软件及其依赖
  • 硬件依赖:容器无需修改便可运行在几乎所有的平台上 -- 虚拟机、物理机、公有云、私有云
  • 隔离性:资源、网络、库都是隔离的,不会出现依赖问题
  • 自动化:提供 run, start, stop 等标准化操作,非常适合自动化
  • 高效性:轻量级,能够快速启动和迁移
  • 职责分工:开发人员只需考虑怎么写代码;运维人员只需关心如何配置基础环境
  1. 容器怎么实现迁移?
    迁移是通过编排引擎。比如kubernetes
  2. “启动容器不需要启动整个操作系统”这句怎么理解啊?容器不是不需要自己的OS吗?
    因为容器直接使用宿主机的kernel,操作系统已经在那里了
  3. docker打包的应用和依赖,如果其中包含一些配置信息,比如生产、开发、测试环境的一些地址或者主机相关的信息,这类信息不同环境存在差异,怎么确保打包后的镜像切换到另一套环境部署的时候环境差异不会影响使用?
    配置信息可在运行容器时通过volume传进去,不需要也不建议做到镜像里
原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13967839.html