DOCKER 入门

DOCKER 入门

前言

Docker技术已经非常普遍了,基本上互联网公司都在使用。它可以帮助企业快速拓展水平服务。目前,微服务 + Docker 更是完美的组合,解决了企业运维部署、敏捷开发、持续集成等诸多问题。

本文将重点介绍以下几个方面:
1、Docker是什么?
2、为什么要使用Docker,它有什么优势?

Docker是什么?

我们来看一下Docker的LOGO,是一条大鲸鱼(船),上面放了很多集装箱。
0598420a8632ab15b48b473a9dc3d3f5.png
想一想,在很久以前没有集装箱的时候,人们运送货物是多么的麻烦,而且效率低下。现在有了集装箱所有的操作都可以围绕着如何将标准大小的集装箱运上船,不仅利用了船的上层空间,而且由于标准化的集装箱大大地提高了运输效率。

这里的大鲸鱼就好比我们的操作系统,而上面的一个个集装箱就是我们的docker容器。所以当我们用了Docker以后,操作系统这艘大船的资源利用率和效率将大大提升。

用专业一些的话语来解释一下:

(1)Docker可以理解为一个超轻量级的虚拟机,或者叫做应用容器。
(2)Docker和传统的虚拟机的不同之处在于,Docker是在操作系统层面上进行虚拟化的,而传统的虚拟机需要在硬件的基础上虚拟化。
(3)相对于传统的虚拟机,Docker的启动速度快,资源利用率高,对系统的性能开销小。

用表格对比一下传统虚拟机和Docker的不同:

特性虚拟机Docker
隔离级别操作系统级进程级
系统资源很低
启动时间分钟级秒级
镜像存储GB-TBKB-MB
集群规模上百上万

为什么使用Docker?

听完上述的介绍之后,是不是大概已经知道这个答案了?总结一下就是:

(1)更高效的利用系统资源

由于容器不需要进行硬件虚拟及运行完整操作系统等额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统的虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

(2)更快速的启动时间

传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行与宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级别的启动时间。大大的节约了开发、测试、部署的时间。

(3)一致的运行环境

开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些BUG并未在开发过程中被发现。而Docker的镜像提供了除了内核外完整的运行时环境,确保了应用运行环境得一致性,从而不会再出现“这段代码在我机器上没问题”这类问题。

(4)持续交付和部署

对开发和运维人员来说,最希望的就是一次性创建或配置,可以在任意地方正常运行。使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过DockerFile来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署。而使用DockerFile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

(5)更轻松的迁移

由于Docker确保了执行环境得一致性,使得应用的迁移更加容易。Docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用迁移到另一个平台,而不用担心运行环境得变化导致应用无法正常运行的情况。

(6)更轻松的维护和扩展

Docker使应用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变的非常简单。此外,Docker团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

总结

听了这么多,是不是你对Docker技术已经有了一定的了解了,知道了Docker的定义以及它能带给我们的好处,那么接下来一起来学习吧!