欢迎光临散文网 会员登陆 & 注册

有了这篇Docker教程,彻底爱了、附IDEA教程

2023-03-13 21:43 作者:我有一个坏前桌  | 我要投稿

破解IDEA请查看:IDEA激活码2022.1最新激活注册码–破解教程「永久激活,亲测有效」


正文

以前有句玩笑话,JAVA是跨平台的,一次编写,到处编译!诚然,java的程序在部署方面是比较复杂和难以调试的,如果是多地部署要考虑的东西很多,而打包成一个镜像,连操作系统都是完全统一的,这样在99%的情况下是可以做到一次编译到处运行的,用法简单、非常的爽


一、什么是docker

引用官方说明:Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

简单讲就是,Docker让基础设施像应用程序般轻松管理方便快速进行集成、测试和封装,极大的减少交付的延误



Docker原理

前面该吹的都吹了,这边不讲深奥原理(主要也没翻过源代码,讲不出来),docker其实也是一个虚拟机的变种,类似更高级的程序,用java术语讲,封装、抽象更具体,操作系统层面的文件能共用的都共用了,所以整体容量更小,占用更少资源。

下图是容器化和虚拟化的结构对比图,docker的运行单位是容器,运行在docker引擎上,主要依赖linux内核特性,可以部署很多平台上,但docker engine上只能跑 linux容器!


为什么使用 Docker

从商业角度来说,主要是快,天下武功唯快不破,这可以解决(忽略)很多问题!

另外,docker的设计思想是一个容器一个应用,最好是无状态的,这样在削峰填谷的时候可以全自动的伸缩!

完全微服务的理念,所以几乎是标配!当然,超密集应用还有更大生态圈,不是仅仅一个docker能解决的!


应在何时使用 Docker

如果开始考虑上微服务、迭代非常迅速,甚至一日多更,完全建议上docker!大不了最终交付改传统模式即可。




docker结构再分析

这里有几个概念要补充下:

  • 容器是docker运行的最小单位,资源来自于镜像,与镜像的区别在于有差异化文件,如程序jar、配置信息等,是有运行时态的数据沉淀,当容器删除时,内在数据被删除!

  • 镜像来源于仓库,分层存储(复用、减少容量、不深究),最原始的镜像只是个小型化的OS,常见的镜像在这上面增加应用,形成新的镜像,如搭载nginx的web应用镜像

  • 仓库,中央公共仓库来自于官方,因网络质量和数据安全等原因,可在局域网搭建私有化仓库,常见有官方的Registry和Vmware公司的Harbor等产品。

  • 数据卷,前面说了docker的设计理念,希望容器是无状态的,这些有状态的数据文件就通过数据卷挂载到容器中,容器的销毁、克隆不影响也可复用!



三、拉个web应用玩玩

这边将做三个不同的场景演示:

  • 传统拉镜像、挂载html文件目录、启动应用并访问

  • 使用docker file脚本,打成镜像,存放在本地仓库,并拉取执行,这是制作自己专属产品镜像的方法

  • 使用compose脚本,组合使用,方便后期更换版本、调整配置,更高级的做法!

  • 最后补充了dockerFile和compose的组合使用!

场景1:hello world


场景2:dockerFile


场景3:compose

场景4:Dockerfile和compose组合使用

这里用到了非markdown标准语法,主要是好看,自用,所以截了个图,供参考!



有了这篇Docker教程,彻底爱了、附IDEA教程的评论 (共 条)

分享到微博请遵守国家法律