Spring Boot应用 Docker化,Linux系统的简介与历史发展

当下web服务端开发中最火的名词中绝对有微服务的一席之地,其也成为当下互联网后端服务架构演进历程中最闪亮的技术之一。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。既然服务被分割和微小化了,我们很容易想到如果将其和docker结合,让docker承载着一个个的微服务运行,如此一来将会让服务间耦合度降低,部署简洁,同时系统的架构也更加清晰,便于长期演进,基于此想法有了这篇文章的入门实践!

注: 本文原载于 My Personal Blog:, CodeSheep · 程序羊 !

创建基于maven的spring bt项目

pom.xml中加依赖:

我们只需要在启动类中添加一个简单的restful接口就行了,为了后续浏览器能验证一下,访问/hello接口,能向浏览器返回一个 Hello Docker!的问好!

编写Dockerfile

我们在Spring Bt项目的根目录下建立Dockerfile,用起来完成Docker镜像构建的编排:

进入Docker的世界

0x01. 在Spring项目根目录下根据Dockerfile来生成docker镜像

0x02. 从刚创建的镜像来启动容器

docker run -d -p 8080:8080 springindocker

0x03. 打开浏览器,或者使用 curl 访问http://127.0.0.1:8080就可以看到web服务器里返回的Hello Docker!!!问好的字符了

至此就说明你成功将一个基于 Spring https://www.yaoruanwen.com/n/464023.htmlBoot 的应用 Docker 化了。

本文虽然只是以一个Demo,但一个大型的web项目无非也就是由诸多这种Rest服务,外加各种基础设施、数据库、通信、中间件以及调度来构成,每个子元素的开发也依然遵循这里的基本流程。
一、Linux系统的简介

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux操作系统指的是“linux内核+各种软件”,Linux这个词只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

二、Linux的由来

1、想法诞生

众所周知,linux内核是林纳斯·托瓦兹(Linushttps://www.yaoruanwen.com/n/464034.html Torvalds)最先设计的。在1988年,托瓦兹进入了赫尔辛基大学,选读了计算机科学系。在学校期间,因为学业的需要与自己的兴趣,接触到了unix这个操作系统。当时整个赫尔辛基只有一部最新的UNIX系统,但是仍然很难满足托瓦兹的需求。为此,他就想到自己写一个类unix操作系统。不久之后,托瓦兹又了解到,谭宁邦教授为了教育需要而编写的Minix系统。让自己的想法更加坚定。

2、着手设计

1991年初,林纳斯·托瓦兹购买了最新的intel 386的个人计算机,安装了Minix系统,开始学习minix操作系统。经由Minix系统的源码学习到了很多的内核程序设计的设计概念。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。

3、分享与修改

当他发现自己的写的东西真的可以在386上面顺利运行,并且可以读取Minix的文件系统后,他将这个内核程序放置在当时芬兰最大的ftp网络上供大家下载,同时在BBS上面贴了一则消息,希望能获得大家的一些修改建议。因此当用户在安装使用时,发生问题,会反馈给托瓦兹。在托瓦兹能够解决的问题范围内,他能很快速的进行linux内核的更新和排错。

同时为了让自己的Linux能够兼容于UNIX系统,并让所有的软件都可以在Linux上执行,于是托瓦兹开始参考标准的POSIX规范。

POSIX是可携式操作系统接口((Portable Operating System Interface))的缩写,重点在于规范核心内核与应用程序之间的接口,这是由美国电气与电子工程师学会((IEEE))所发布的一项标准喔!
4、广大爱好者的加入

一个人的力量毕竟是有限的。有些硬件托瓦兹无法取得,因此无法编写相关驱动程序,这个时候,就有志愿者站出来帮忙写驱动程序。而且托瓦兹这个人还特别务实。只要经测试可以运行后,就会将这些程序代码加入到内核中。因为这样的状况,https://www.yaoruanwen.com/n/464038.htmllinux的开发逐渐模块化,可维护性也大大增加。

后来,因为Linux内核加入了太多的功能,光靠托瓦兹一个人进行内核的实际测试并加入内核源程序实在太费力,于是,就有很多的朋友跳出来帮忙。例如考克斯(Alan Cox)、与崔迪(Stephen Tweedie)等,这些重要的副手会先将志愿者的修补程序或者新功能的程序代码进行测试,并且将结果上传给托瓦兹看,让托瓦兹做最后内核加入的源码的选择与整并!这个分层负责的结果让Linux的开发更加容易!

特别值得注意的是,这些托瓦兹的Linux开发副手,以及自愿传送修补程序的黑客志愿者,其实都没有见过面,而且彼此分布在地球的各个角落,大家群策群力共同开发出现今的Linux。

5、linux正式版的发布

这群素未谋面的虚拟团队,在1994年终于完成了Linux的内核正式版Version 1.0。代码量达17万行。这一版同时还加入了X Windowhttps://www.yaoruanwen.com/n/464035.html System的支持!此外,托瓦兹指明了企鹅为Linux的吉祥物。

1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。

三、Linux开枝散叶

1、不同distribution的产生

因为linux加入了gnu计划,所以,任何人均可取得源码和可执行这个内核程序,并且可以修改。并且由于GNU的GPL授权并非不能从事商业行为,因此很多商业公司和团队便专门来开发自己的linux distribution。比较出名的有Red Hat,SuSE,Ubuntu,Fedora,Debian,CentOS等。

2、不同distribution的支持标准

很多人不免担心,这么多distribution会不会都不相同呢?我可以告诉大家,无需担心,因为这些版本使用的都是同一个内核,而且还有Linux Standard Base(LSB)以及目录架构的File system Hierarchy Standard(FHS)标准规范等一些标准来规范开发者,它们的唯一差别可能就是该开发者自家所开发出来的管理工具以及套件管理的模式。

所以说,基本上,每个Linux distributionshttps://www.yaoruanwen.com/n/464042.html除了架构的严谨度与选择的套件内容外,其实差异并不太大。大家可以选择自己喜好的distribution来安装即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值