Docker是一个开源的容器引擎,轻量级、易移植,“一次构建,一次配置,随处运行”。采用go语言开发,遵守apache2.0协议。1.传统软件行业存在的问题开发、生产、测试??环境不一致,开发??环境可用的服务生产不可用。不同环境之间迁移成本太高,没有统一的软件部署打包标准和打包环境。对于分布式软件持续集成(测试、打包、发布、部署、管理)周期很长,很难实现自动化和工程化。面对瞬时用户流量激增的场景,分布式应用服务实例难以实现快速部署。2、容器与docker的关系软件行业通常将docker称为容器技术,那么docker与容器有哪些相似之处呢?在传统行业容器软件行业,Docker加载实物,加载运行应用服务,规范统一,便于搬运和打包。环境的统一性(JDK和环境变量可以封装在一个docker镜像中),可以遵循一定的规则,重复快速自动化安装部署环境隔离,各个公司的容器货物不与其他公司的容器货物混在一起公司。在Linux中,使用命名空间技术进行资源隔离,使用cgroups技术进行资源限制。容器之间互不影响。资源共享,一艘船运集装箱,承载多个集装箱,一台服务器可以启动多个docker容器,达到共享服务器资源的目的。拥有完整的物流仓储系统。docker镜像仓库中的镜像可以导出导入。上传下载可以参考我的另一篇文章《【大话云原生】煮饺子与docker之间的关系》,我想这篇文章对你了解docker会有很大的帮助。3、docker和虚拟机的区别docker和虚拟机在一些应用场景上是类似的,但是docker不是虚拟机。Docker是一种虚拟化容器技术。它和虚拟机最根本的区别是docker容器和宿主机共享Linux操作系统内核,不会再在宿主机上安装操作系统。docker容器运行状态的本质是宿主机上的进程。通过namespace资源的隔离和cgroups资源的限制,看起来就像一个独立的虚拟机。对比虚拟机docker容器启动速度慢(本质是启动操作系统)秒速(本质是启动一个进程)镜像大小以Ubuntu为例,1G以上的Ubuntu:195M应用部署集成通常手动安装下载镜像+启动镜像(自动)内存访问效率慢,先访问虚拟地址基本相当于宿主机HostCPU损失虚拟操作系统造成的损失比较大,接近04.Applicationdocker使用场景docker镜像构建完成后,一次性完成了应用的自动打包集成。Docker镜像可以进行版本控制、复制、共享和修改,就像管理代码一样。通过统一的docker环境封装(例如在镜像中封装相同版本的JDK、相同的环境变量等),保证应用服务运行环境的一致性。避免测试环境好用,生产环境跑不起来的问题。Docker可以实现秒级甚至毫秒级的启动时间。大大节省了开发、测试和部署的时间。由于镜像可以下载复用,docker容器可以快速启动,结合容器编排服务(k8s),可以实现大规模分布式部署的弹性伸缩和快速扩展。五、小结如果初学者对本节内容理解有困难,请不要气馁。其实docker的学习难度是很低的。随着学习的深入,上面的概念也就容易理解了。如果您觉得对您有帮助,请点赞转发!您的支持是我创作不竭的动力!.更多精彩内容公众号:字母哥。Antetokounmpo博客:zimug.com
