从虚拟机到容器:Docker解决了什么问题

📅 2026/6/30 11:31:06
从虚拟机到容器:Docker解决了什么问题
容器 vs 虚拟机Docker可以类比虚拟机但在虚拟机中每个单独的虚拟机有自己的操作系统。如果每个项目需要独立部署在一个环境中那么多项目部署就会涉及大量的虚拟机正如上文所言每台虚拟机会有操作系统就会存在体量大的问题。而将所有的项目存放在一台虚拟机中就失去了独立存放、独立管理的意义也会出现一个程序崩溃污染所有程序的问题。所以容器则更有优势多个容器可以只在一个操作系统上面部署解决多个操作系统体量大的问题。VM启动要几十秒到分钟级容器启动是秒级甚至毫秒级。容器可以包含一个应用程序如此而言即使面临程序的崩溃只会在这个容器中相应地隔离了其他程序保证了其他程序的安全。解决环境一致性问题不仅如此容器技术也利好环境问题。在面对开发和运维的不同岗位、不同用户的实际使用情况时避免了不同机器上环境配置不一致的问题即开发的时候是一套环境而运维时则会有版本问题、缺少环境。面对这一情况只需要开发将自己部署的项目放在一个容器内部在这个容器内部保存了必要的开发环境并且将该容器打包上传要使用该容器的用户拉取镜像构建运行项目则解决了环境问题。Docker核心技术点对于Docker的一些具体技术点基础命令run运行容器数据持久化Docker提供两种数据持久化方式目录挂载bind mount和卷volume。如果没有挂载容器删除后数据会丢失配置挂载后数据会保存在宿主机或Docker管理的卷中即使删除容器重新创建并挂载时数据依然存在。网络与通信端口映射将容器内部端口映射到宿主机自定义网络创建容器间通信的网络容器名作为DNS容器名就是内部的稳定域名使容器之间的通信更加方便高级技术Redis主从同步通过Docker实现Redis集群部署Dockerfile定义镜像构建流程Docker Compose多容器编排构建这是作者在学习Docker过程中的总结欢迎交流讨论。