当前位置:首页 > 开发语言 > 正文

docker是什么东西?docker容器的特点

docker是什么东西?docker容器的特点

大家好,如果您还对docker是什么东西不太了解,没有关系,今天就由本站为大家分享docker是什么东西的知识,包括docker容器的特点的问题都会给大家分析到,还望可...

大家好,如果您还对docker是什么东西不太了解,没有关系,今天就由本站为大家分享docker是什么东西的知识,包括docker容器的特点的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

docker hub是什么东西

是个外国的网站,在dockerhub可以下载别人做的镜像,直接使用

Google和Facebook为什么不用Docker

Google应该用的是kubernnetes或者自己的infra.Facebook用的自己的infra。有点年纪的大公司一般都有很强的infrateam,一般都喜欢自己造车轮,同时很多legacy的东西也不容易一下子就转到开源的新软件。一般出创公司喜欢用开源的东西,没有那个人力去造轮子,直接开源走起比较快速

软件开发一般学什么

IT技术领域可以分为18个领域:

人工智能,云计算,大数据,区块链,物联网,设计,Web开发,移动开发,游戏开发,服务端开发,数据库,架构,测试,运维,网络管理,安全技术,认证考试,信息化建设。

软件开发一般指web开发、移动开发、游戏开发、服务端开发、数据库这几类,你可以选择其中一类或几类学习和研究,现在比较火的属于移动开发和游戏开发了。技术其实都是触类旁通的,能学号一个,就能学号好外一个。

高端的软件开发就是人工智能、云计算、大数据、区块链、物联网等,这里就不深入讨论。先从基本的软件开发开始吧。

web开发:

移动开发

游戏开发

服务端开发

数据库

可以用docker代替虚拟机,运行生产服务器吗

正面回答这个问题之前,先看看虚拟机和Dcoker的区别。

虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。举例说明:电脑上安装操作系统,比如我们安装了win10的操作系统;再往上安装虚拟机软件,比如我们常用的VirtualBox、VMWare,它们的作用是模拟计算机硬件;这样虚拟机模拟出来的操作系统了;在虚拟的操作系统中,安装所需的软件、组件等。比如我们在虚拟操作系统中安装JDK、Tomcat等;最后就是具体的应用了,也就是把应用部署到Tomcat中。

Docker:官方解释是开源的应用容器引擎。用人话解释一下:依然需要现在电脑上安装操作系统,然后安装Docker容器的管理器,到了这一步,不需要自己安装JDK和Tomcat,而是由开发人员将素有的依赖和应用都被打包成了Docker镜像。例如,JDK、Tomcat、应用都被打包在了一起,运行在Docker容器里,容器和容器间是隔离的。

总结一下虚拟机和Docker的区别:

从两者的架构图上看,虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器。

Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算。

Docker所用的资源更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。

虚拟机实现了操作系统之间的隔离,Docker算是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。

再正面回答一下“Docker可以代替虚拟机运行生产服务器么”?

Docker是可以用于生产环境的;但是Docker是有学习成本的,前期要踩不少的坑;如果没有容器集群管理工具的话,只用Docker的话,没有太大必要(人肉维护?开发和运维都会死的);虚拟机和Docker各有优势,很多企业都采用物理机上做虚拟机,虚拟机中跑Docker的方式。总之,要说Docker代替虚拟机还为时过早,至少短期内不会;我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

Java包括什么

经过20多年的发展Java从最初嵌入在网页中的Applet发展到几乎各个开发领域,包括Web解决方案、大数据、人工智能、移动互联网、物联网、云计算等等。所以目前Java成为了程序员必须掌握的开发语言之一,相信在未来很长一段时间内,Java依然会是一门被广泛使用的开发语言。

那么Java到底包括哪些内容呢?答案首先要到Java的官方资料中查找。

这是Java官方给出的Java技术提纲,下面对这里面的技术进行分别解读:

JavaSE

这是很多初学者最初学习Java就接触的内容,简单的说就是Java的标准版,也是很多其他版本的母版(基础版),JavaSE是学习Java技术的第一步,目前已经更新到Java10版本。

这一部分从创建一个基本的Java类开始,描述Java面向对象编程的核心概念以及编程过程:类的设计、对象的创建、方法的调用。细节包括类、对象、属性、方法、封装、继承、多态、异常、集合、线程等,也包括一些诸如java.time包中的类如何使用,以及如何部署Java程序。

这一部分主要讲解如何使用Swing和JavaFX,这两个技术是目前使用Java做图形用户界面的主要解决方案。JavaFX出现的时间较晚,很多使用JavaFX的程序员对这个技术的评价还是非常不错的,随着版本的更新,相信JavaFX将会得到更好的发展(我之前的文章中有针对JavaFX的详细介绍)。Swing是在AWT基础上开发的轻量级GUI解决方案,图形组件采用了MVC结构,操作简单且功能强大,唯一的遗憾是速度偏慢。

这部分涵盖了JavaSE中的诸多细节,包括网络编程、平台适配、JavaBeans、JDBC、JMX、JNDI、JAXP、JAXB、RMI、反射、安全、多媒体等内容。这里面每一个内容都需要写上一本书才能完全讲解清楚,包含的细节也非常多,这里面的RMI是Java分布式编程的基础(我之前的文章中有关于RMI编程的细节描述),JDBC则是如何通过Java操作数据库的API等等。

这里面涵盖的技术在我之前的头条文章中都几乎有所涉及,感兴趣的朋友可以关注一下。

JavaEE

JavaEE此前一直是官方主推的企业级Java解决方案,里面涵盖了大量企业级开发的API,目前Oracle公司已经把JavaEE交给Eclipse基金会来管理了,已经改名为JakartaEE了,也许未来EE版会带来更多改变。虽然已经脱离了官方阵营,今天也简单描述一下JavaEE版都包含了哪些内容。

JavaEE版本涵盖的主要内容是围绕EJB展开的,Java官方为企业级开发提供了三种EJB方案,分别是会话Bean、实体Bean和消息驱动Bean。

围绕这三种EJB企业可以开发出大用户并发的安全的Java分布式平台,当然性能以及事务处理等方面的优点是显而易见的。

虽然Java官方为EJB付出了巨大的代价(人力、物力),但是市场对EJB并不是全盘接受,因为EJB太重了。Spring的出现使得EJB的地位非常尴尬,后来EJB的版本更新也借鉴了Spring的很多理念,但是EJB的基因太难改变了。

JavaME

ME版本的出现时间并不晚,我在2004年的时候曾经短暂的使用过ME版本在Nokia的塞班平台下进行程序开发。可以说当年的Sun公司对嵌入式设备的发展还是具备一定眼光的,只是当IOS和Android平台出现的时候,JavaME多少显得有些尴尬。

JavaME针对嵌入式设备进行了重写,支持在嵌入式设备上运行Java应用。当年也确实有很多基于JavaME开发的嵌入式产品,大到美国发射的“勇气号”太空车,小到工业机器人,目前JavaME的应用并不多,但是官方依然对JavaME抱有期望。

JavaCard、JavaTV、JavaDB

关于JavaCard可能用过的人就更少了,但是在最初推出这个技术的时候,JavaCard为我们描绘了很多未来的应用场景(目前这些场景中的很多内容由智能手机完成了)。看一下JavaCard的官方定义:

可以说JavaCard在一些具体场景中还是有所应用的,比如通信领域和金融领域等对安全性有较高要求的领域。

看一下JavaTV的官方定义:

JavaTV的出现是数字化TV发展的必然结果,同样,目前这部分市场被Android抢占的比较厉害,好在Android的应用开发也采用了Java语言。

看一下关于JavaDB的官方描述:

JavaDB是Java数据库应用的一个方向,能在数据库平台上提供完全的Java支持。

以上就是Java包含的技术总结,当然,现在的Java已经不仅仅是Oracle公司的,全世界很多科技公司或组织都在开发基于Java的各种应用,所以Java已经不单纯的是一门语言,更是一个平台、桥梁和链条。

我在头条上写了关于Java技术的系列文章,感兴趣的朋友可以关注一下,有问题可以一起交流。

有docker了,为什么还需要nas系统

感谢邀请,Docker和NAS完全是两个不同的东西,侧重点不一样。Docker又叫容器,实际上是SaaS的技术,提供的是应用服务。

例如现在企业如果需要部署服务,使用Docker是非常快捷的方法,因为Docker不需要你部署逻辑服务器,也不需要起复杂的虚拟机。虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动慢,而且需要硬件支持

而Docker容器是在操作系统层面上实现的虚拟化,直接利用本地主机的操作系统,因此更轻量。不像虚拟机一样,需要对整个OS虚拟化,Docker虚拟的是Linux内核之上的应用部分,所以启动更迅速,可以到秒级。

如果企业需要广泛部署某个应用,只需要把包含这个应用的镜像在私有云的服务器上基于容器安装启动(你可以理解为我们家庭安装操作系统时的Ghost),那么这个应用就能很快部署。这比建立虚机再安装应用快多了,就类似复制黏贴。

所以很多企业使用Docker快速搭建自己的应用,实现秒级的应用搭建和启动。这是Docker的作用,应用部署。但是Docker应用所需的存储空间是共享的。

而NAS其实是存储服务器,NAS(NetworkAttachedStorage:网络附属存储)按字是基于网络,用于资料存储功能的服务器,因此也称为“网络存储器”。它的作用是管理数据,做到控制和存储分离。NAS可用实现通过网络存取数据,而现在NAS已经从云端走到了家庭,成为家庭的存储利器之一

NAS里面内置一个用于管理的轻量化Linux系统,但是这个仅仅是管理,有的NAS也可用直接作为Linux服务器部署业务,但是这个能力很弱。所以Docker主要是用于应用的安装,而NAS主要是运用于保存数据,这是两个应用方向。

而且正如刚才所说的,NAS的家庭应用已经很普遍了,你就可以认为是一个映射的外挂硬盘,这个应用场景类似于建立一个小型的家庭数据中心,应用场景比容器广泛的多,容器Docker主要还是基于企业部署应用的。

所以简单的理解,Docker的作用是企业快捷的基于物理服务器安装APP提供服务,NAS是提供数据存储,两个都需要

OK,本文到此结束,希望对大家有所帮助。

最新文章