Docker简介
Docker是dotCloud公司基于Linux内核,使用Go语言创建的一个虚拟化技术,对进程封装隔离。由于隔离的进程独立于其他进程以及宿主,所以隔离的进程称为容器。
Docker是一个虚拟化技术,容器是隔离化进程。
Docker和传统虚拟机的区别
Doker容器:容器直接运行在宿主的内核,作为一个隔离进程在操作系统上运行,和其他的容器一起分享操作系统的内核。
虚拟机:需要虚拟化硬件设备,运行一个完整的操作系统,然后再运行所需的进程。
为什么使用Docker?
更高效的利用系统资源
不需要硬件虚拟及运行完整的操作系统,从而对系统的资源利用率更高;应用执行速度快、内存损耗低、文件存储速度高效;相比于虚拟机,相同的主机,容器能够运行更多数量的应用;
更快速的启动时间
传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间
一致的运行环境
Docker提供了完整的运行时环境,确保了应用程序运行环境的一致性,不会再出现[源码在我电脑上运行没问题啊]这种情况。
持续交付和部署
使用Docker可以通过定制镜像持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
更轻松的迁移
由于容器确保了环境的一致性,使得迁移更加容易。
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |