Docker入门篇[SpringBoot之Docker实战系列] - 第534篇

打印 上一主题 下一主题

主题 1035|帖子 1035|积分 3105

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

历史文章(文章累计530+)

《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
《国内最全的Spring Boot系列之七》

Spring Boot实用小本事8 - 第530篇
Spring Boot实用小本事9 - 第531篇
Spring Boot实用小本事10 - 第532篇
Suno V4 API 接入 – 最新的Suno模子,音质很炸裂
Spring Boot实用小本事11 - 第533篇
Viggle Api上线V3-beta模子,圣诞节跳舞视频来临
Suno Api V4 - Suno Api系列教程,泯灭1个星期,输出14篇文章
Viggle AI开放照片唱歌API,新年快乐唱起来


导读
SpringBoot中,当要将jar包摆设到多台服务器的时间,那么每个环境都需要配置类似的运行的环境,假如有个运行环境要升级,那么多台服务器都要进行升级,这对于运维来说,非常的不友爱。
那么我们想象这么一个场景,是否有没有一种方式,可以把这个环境的信息,配置在一个配置文件中,然后根据这个配置文件配置的信息主动进行搭建环境。
为了解决这么一个问题,那么Docker就运运而生了。
在接下来的一个文章中,会从介绍Docker开始,循序渐进的慢慢的过分到SpringBoot中如何利用Docker进行摆设
很多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?
那么序列教程的第一篇的话,主要是来介绍一个:Docker劈头以及Docker是什么?
一、环境配置的难题
软件开发最大的贫苦事之一,就是环境配置。用户计算机的环境都不类似,你怎么知道自家的软件,能在那些呆板跑起来?
用户必须包管两件事:操作体系的设置各种库和组件的安装。只有它们都正确,软件才气运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依靠,可能还要配置环境变量。
假如某些老旧的模块与当前环境不兼容,那就贫苦了。开发者经常会说:"它在我的呆板可以跑了"(It works on my machine),言下之意就是,其他呆板很可能跑不了。
环境配置如此贫苦,换一台呆板,就要重来一次,旷日费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时间,把原始环境千篇一律地复制过来。
二、虚拟机
虚拟机(virtual machine)就是带环境安装的一种解决方案。它可以在一种操作体系里面运行另一种操作体系,比如在 Windows 体系里面运行 Linux 体系。应用程序对此毫无感知,因为虚拟机看上去跟真实体系千篇一律,而对于底层体系来说,虚拟机就是一个平凡文件,不需要了就删掉,对其他部门毫无影响。
虽然用户可以通过虚拟机还原软件的原始环境。但是,这个方案有几个缺点。
(1)资源占用多
虚拟机遇独占一部门内存和硬盘空间。它运行的时间,其他程序就不能利用这些资源了。哪怕虚拟机里面的应用程序,真正利用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才气运行。
(2)冗余步骤多
虚拟机是完备的操作体系,一些体系级别的操作步骤,往往无法跳过,比如用户登录。
(3)启动慢
启动操作体系需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才气真正运行。
三、Linux 容器
由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。
Linux容器不是模拟一个完备的操作体系而是对进程进行隔离。或者说,在正常进程的外面套了一个掩护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层体系的隔离。
由于容器是进程级别的,相比虚拟机有很多上风。
(1)启动快
容器里面的应用,直接就是底层体系的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作体系,速率就快很多。
(2)资源占用少
容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完备的操作体系,不可避免要占用全部资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
(3)体积小
容器只要包含用到的组件即可,而虚拟机是整个操作体系的打包,所以容器文件比虚拟机文件要小很多。
总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。
四、Docker 是什么?
Docker 最初是 dotCloud 公司首创人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目厥后还参加了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目 已经超过 5 万 7 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 利用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作体系层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而利用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为利用 runC 和 containerd。
Docker 属于 Linux 容器的一种封装,提供简朴易用的容器利用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依靠,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简朴,用户可以方便地创建和利用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理平凡的代码一样。
下面的图片比较了 Docker 和传统虚拟化方式的差别之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完备操作体系,在该体系上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。



五、Docker 的用途
Docker 的主要用途,目前有三大类。
(1)提供一次性的环境。比如,当地测试他人的软件、持续集成的时间提供单位测试和构建的环境。
(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台呆板可以跑多个服务,因此在本机就可以模拟出微服务架构。


好了,今天有关Docker的入门的文章就介绍到这里。
感慨一下:现在技术真的好卷呢,啥都要会,难,难,难,难于上青天。


历史文章(文章累计530+)
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
《国内最全的Spring Boot系列之七》

SpringBoot基本原理,轻松应对口试官 - 第522篇
Spring Boot实用小本事 -  - 第523篇
Spring Boot实用小本事2 - 第524篇
Spring Boot实用小本事3 - 第525篇
Spring Boot实用小本事4 - 第526篇
万物皆能舞,AI让你秒变“舞”林高手 – Viggle AI“舞”所不能
法定年龄退休2024年新规,我要到63岁才气退休了,看看你几岁退休,附退休对照表
Suno新上线Covers翻唱新 - 实现音频风格恣意转换
Spring Boot实用小本事5 - 第527篇
Spring Boot实用小本事6 - 第528篇
又一款AI对口型神器,让照片开口说话唱歌,1分钟教会(附保姆级教程)
Spring Boot实用小本事7
Spring Boot实用小本事8 - 第530篇
Viggle API开放,接入到自己的产品中,让照片跳起舞来
Spring Boot实用小本事9 - 第531篇
AI视频生视频,一次支持20秒的视频,效果挺震撼 - 模拟爆款抖音账号制作爆款视频[AI视界]
Spring Boot实用小本事10 - 第532篇
Suno V4版本震撼来袭,音质与歌词双提拔
Suno V4上线啦,来听听V3和V4的区别,效果太炸裂了 —— V4 IS HERE
Suno V4 API 接入 – 最新的Suno模子,音质很炸裂
Spring Boot实用小本事11 - 第533篇
Viggle Api上线V3-beta模子,圣诞节跳舞视频来临
Suno Api V4 - Suno Api系列教程,泯灭1个星期,输出14篇文章
Viggle AI开放照片唱歌API,新年快乐唱起来











免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表