概念
Docker是一个容器引擎,是应用程序与系统之间的隔离层。
通常应用程序对安装的系统环境会有要求,如果服务器很多,部署时系统环境的配置工作是非常繁琐的。Docker让应用程序不必再关心主机环境,各个应用安装在Docker镜像里,Docker引擎负责运行包裹了应用程序的docker镜像。
Docker的理念是让开发人员可以简单地把应用程序装载到容器中,然后轻松地部署到任何地方。Docker非常适合频繁改动快速发布的互联网项目。
Docker的首次发布是在2013年3月,发布后就变得非常流行
docker特性
- Docker容器是轻量级的虚拟技术,占用更少系统资源。
- 使用Docker容器,不同团队(如开发、测试,运维)之间更容易合作。
- 可以在任何地方部署Docker容器,例如:任何物理和虚拟机上,甚至在云上。
- 由于Docker容器非常轻量级,因此可扩展性很强。
docker和虚拟机的区别
Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。
下图是虚拟机的体系结构:
- server – 表示真实电脑。
- Host OS – 真实电脑的操作系统,例如:Windows,Linux
- Hypervisor – 虚拟机平台,模拟硬件,如VMWare,VirtualBox
- Guest OS – 虚拟机平台上安装的操作系统,例如CentOS Linux
- App – 虚拟机操作系统上的应用,例如nginx
下图是Docker的体系结构:
- server – 表示真实电脑。
- Host OS – 真实电脑的操作系统,例如:Windows,Linux
- Docker Engine – 新一代虚拟化技术,不需要包含单独的操作系统。
- App – 所有的应用程序现在都作为Docker容器运行。
这种体系结构的明显优势是,不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。
虚拟技术缺点:
- 资源占用十分多
- 冗余步骤慢
- 启动很慢
容器技术不是模拟的一个完整的操作系统
两者不容:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以轻便
- 每个容器间是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响