Docker入门------(一)Docker介绍

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
(截取自百度百科)

Docker兴起原因

随着云计算的时代的到来,将应用转移到云上部署已成为趋势,而普通的的虚拟化技术如VMware,它是在宿主主机操作系统(Host OS)的基础上创建虚拟化的操作系统等所需文件,然后再安装应用;

Docker则是在宿主主机操作系统上创建Docker引擎,在引擎的基础上安装应用,不需要安装虚拟机如 VM 那般安装完整的操作系统,所以较于VM大大节省了空间。

因为 Docker 可以直接在宿主主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源。

Docker容器与VM的区别

虚拟机的架构图
以往的虚拟机技术是在我们的宿主机上虚拟一个完整的操作系统,让再在这个虚拟出来的操作系统上安装应用,这样虚拟机占的空间是很庞大的。
Docker的架构图
Docker的虚拟化技术就比VM轻量级很多,它只是再宿主机上多了一个Docker引擎,然后通过Docker引擎各个容器共享宿主机操作系统,这样避免了重复在宿主机上布置虚拟机。

Docker对比VM的优势

更高效的利用系统资源

因为 Docker 能够直接在宿主机操作系统上调用资源,不但省去了虚拟化硬件所要的空间,而且应用的执行速度、内存损坏和文件存储速度等都较 VM 有优势,所以在相同的配置下,Docker容器能比VM的虚拟机运行更多的应用。

更快速的启动时间

使用过VMware都知道启动一个虚拟机是需要几分钟的,而Docker容器由于是直接操作宿主机内核,不需要启动完整的操作系统,所以可以做到 秒级启动

一致的运行环境

用C/C++开发时,总是要考虑环境问题,因为C的一些基本类型在不同位数的操作系统下是不一样的;而Java利用其JVM技术解决了这一问题;对于Docker来说,它的一个镜像是包含了除内核外完整的运行时环境,所以也可以保证应用运行环境一致性。

更轻松的维护和扩展

Docker使用分层存储与镜像的技术,以此来达到复用重复部分,让维护与扩展都变得非常简单。

总结

虚拟化技术与容器的比较

Docker的三大组件

Docker镜像

Docker的镜像概念就好像Java中面向对象的继承思想,就好像有一个父类,然后子类只需要去继承父类就可以获得父类提供的东西。

Docker的镜像也一样,比如你要部署项目,我们只需要找一个 tomcat 的镜像,然后把我们的项目部署进去,然后再重新建成我们自己的镜像,这样我们只需要给我们的镜像实例化一个容器就可以随时部署了,是不是很方便。

这就是Docker镜像的一个分层存储的概念,镜像的构建是一层一层的,对当前层的操作完全不会影响到上面的一层,这使得镜像的fuyogn复用、定制变得容易。

Docker镜像其实就是一个特殊的文件系统,它提供了容器运行时所需的环境,镜像是不包含动态数据的,而且镜像的内容在构建之后不会改变。

对分层结构更深入了解可看:https://www.infoq.cn/article/docker-core-technology-preview

Docker容器

跟着上面Java的例子,现在我们让子类去继承了父类,获得了父类提供的一些东西,但是类是不能够运行的,我们需要给它实例化一个对象才行。

Docker镜像也是如此,我们可以给Docker镜像实例很多Docker容器,各个容器之间是相互隔离的。

容器的实质其实就是进程,但与直接运行在宿主机上的进程不同,容器的进程运行于属于自己的独立命名空间,使用起来就像是独立于宿主的系统下,种特性使得容器封装的应用比直接在宿主运行更加安全。

Docker仓库

随着镜像的增多,就需要对他们进行专门的管理,对这些镜像进行管理的叫 Docker Registry服务,如 Docker 官方的 Docker Hub,Docker官方提供了许多高质量的镜像,我们能直接在它们镜像的基础上修改,然后定制自己所想要的镜像。

在下载镜像的时候,如果我们不指定地址,我们的默认 Registry 就是官方的Docker Hub,但是官方的仓库是外国的,在国内访问可能会比较慢,我们可以配置阿里云的镜像加速器。

上面所说的都是公有仓库,官方有提供一个Docker Registry 的镜像,让用户可以在本地搭建一个私有仓库。

参考

https://www.zhihu.com/question/25394149/answer/30671258

https://zhuanlan.zhihu.com/p/53260098

https://www.infoq.cn/article/docker-core-technology-preview

https://www.funtl.com/zh/docker/Docker-%E4%BB%93%E5%BA%93.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值