Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

AI人工智能学习大礼包

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Docker使用手册 PDF 下载


分享到:
时间:2021-09-03 09:35来源:http://www.java1234.com 作者:转载  侵权举报
Docker使用手册 PDF 下载
失效链接处理
Docker使用手册  PDF 下载


 
本站整理下载:
提取码:dia8 
 
 
相关截图:
 
主要内容:

如果说个人主机时代大家比拼的关键是CPU主频的高低和内存的大小,那么在云计算时代,虚拟化技术无疑是整座信息技术大厦最核心的一块基石。
伴随着信息技术产业的发展,虚拟化技术已经应用到各种关键场景中。从最早上世纪60年代IBM推出的大型主机虚拟化到后来x86平台上的虚拟化,虚拟化技术自身也在不断丰富和创新。
虚拟化既可以通过硬件模拟来实现,也可以通过操作系统来实现。而近些年出现的容器虚拟化方案,更是充分利用了操作系统本身已有的机制和特性,可以实现轻量级的虚拟化,甚至有人把它称为新一代的虚拟化技术。Docker毫无疑问就是其中的佼佼者。
那么,什么是Docker?它会带来什么好处?它跟现有虚拟化技术又有何关系呢?
本章在介绍Docker项目的起源和发展之后,会剖析Docker和Linux容器技术的密切联系,以及在开发和运维中使用Docker的突出优势。最后,还将阐述Docker在整个虚拟化领域中的定位。
1.什么是Docker
Docker开源项目
Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache 2.0协议开源。Docker是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker的主要目标是“Build,Ship and Run Any App,Anywhere",即通过对应用组件的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里的应用组件,既可以是一个Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。
Docker基于Linux的多项开源技术提供了高效、敏捷和轻量级的容器方案,并且支持在多种主流云平台(Paas)和本地系统上部署。可以说Docker为应用的开发和部署提供了“站式"的解决方案。
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。
Docker 利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免引导一个虚拟机造成的额外负担[3]。Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括行程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施,依据行业分析公司“451研究”:“Dockers是有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公用云端服务器、私有云端服务器、单机等。”
Docker作为基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐渐形成了围绕Docker的生态体系。dotCloud公司后来也改名为Docker Inc,专注于Docker相关技术和产品的开发。
Docker项目目前已加人了Linux基金会,遵循Apache 2.0协议,全部开源代码均在https://github.com/docker/docker上进行维护。在最近一次Linux基金会的调查中,Docker是仅次于Openstack的最受欢迎的云计算开源项目。
现在主流的Linux操作系统都已经支持Docker。例如,Redhat RHEL 6.5/CentOS 6.5往上的操作系统、Ubuntu 14.04操作系统,都已经默认带有Docker软件包。Google公司宣称在其PaaS(Platform as a Service)平台及服务产品中广泛应用了Docker。微软公司宣布和Docker公司合作,以加强其云平台Azure对Docker的支持。公有云提供商亚马逊近期也推出了AWS EC2 Container,提供对Docker的支持。
 
Linux容器技术
Docker引擎的基础是Linux容器(Linux Containers,LXC)技术。IBM Developer Works上给出了关于容器技术的准确描述:
容器有效地将由单个操作系统管理的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化(paravirtualization)和系统调用替换中的复杂性。
Linux容器其实不是一个全新的概念。最早的容器技术可以追溯到1982年Unix系列操作系统上的chroot工具(直到今天,主流的Unix、Linux操作系统仍然支持和带有该工具)。早期的容器实现技术包括SUN Solaris操作系统上的Solaris Containers(2004年发布),FreeBSD操作系统上的FreeBSD jail(2000年左右出现),以及GNU/Linux上的Linux-VServer(http://linux-vserver.org/)(2001年10月)和OpenVZ(http://openvz.org)(2005年)。
虽然这些技术经过多年的演化已经十分成熟,但是由于种种原因,这些容器技术并没有被集成到主流的Linux内核中,使用起来并不方便。例如,如果用户要使用OpenVZ技术,就需要先给操作系统打上特定的内核补丁方可使用。
后来LXC项目借鉴了前人成熟的容器设计理念,并基于一系列新的内核特性实现了更具扩展性的虚拟化容器方案。更加关键的是,LXC被集成到了主流Linux内核中,进而成为Linux系统轻量级容器技术的事实标准。

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐