容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
容器由两部分组成:
- 应用程序本身
- 依赖:比如应用程序需要的库或其他软件
容器在 Host 操作系统的用户空间中运行,与操作系统的其他进程隔离。这一点显著区别于的虚拟机(虚拟机有独立操作系统)。参考下图
容器使软件具备了超强的可移植能力,使得每种服务能够在所有的部署环境中顺利运行
Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。
开发:Build Once, Run Anywhere
容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的 Host 环境是隔离的,就像虚拟机一样,但更快更简单。(安全协议还是host的)
运维:Configure Once, Run Anything
e Once, Run Anything**
只需要配置好标准的 runtime 环境,服务器就可以运行任何容器。这使得运维的工作变得更高效,一致和可重复。容器消除了开发、测试、生产环境的不一致性。