一、Docker是什么?
Docker是一个开源的应用容器引擎,它基于go语言开发,并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器上运行。(Docker的核心思想,即打包装箱,每个箱子都是互相隔离的,互不影响的。Docker通过隔离机制,可以将服务器利用到极致!容器化技术不是一个完整的操作系统)
二、Docker 历史
三、选择 Docker的优势
(1)更高效的利用系统资源
容器不需要进行硬件虚拟以及运行完整操作系统等额外的开销,Docker 对系统资源的利用率比虚拟机更高。无论是应用执行速度、内存损耗或者文件存储,都要比传统虚拟机技术更高效。
(2)更快速的启动时间
虚拟机技术启动应用服务往往需要好几分钟, Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,可以达到秒级的启动时间。大大的节约了项目部署的时间。
(3)保证一致的项目运行环境
Docker 的镜像提供了除内核外完整的项目运行环境,确保了应用运行环境一致性,从而避免了因为开发环境不一致造成的部署问题。
(4)持续交付和部署
使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动化部署。
(5)Docker 确保了运行环境的一致性,使得应用的迁移更加容易
Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,其运行结果是一致的。因此用户可以很轻易地将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
(6)维护和扩展更加简单
Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。
四、Docker容器与虚拟机的比较
Docker 和传统虚拟化方式的不同,容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。同时,与传统的虚拟机相比,Docker 优势体现为启动速度快、占用体积小。