Article / 文章中心

颠覆传统运维,Docker 是什么?

发布时间:2022-02-11 点击数:495

Docker 是基于 Go 言语完成的开源项目,这儿需求留意的是它开源哦,这也打下了它后来这么流程的根底,由于受到了广泛的关注和讨论,社区不断地发展壮大,生态就起来了。最早诞生于2013年初,现在也现已加入了 Linux 基金会,遵循 Apache 2.0 协议。

现在干流的 Linux 操作体系现已支撑 Docker。例如 Redhat 6.5、CentOS 6.5 往上的版本、Ubuntu 14.04 等操作体系,都现已默认带有 Docker 软件包了。现在咱们运用的各种云服务器渠道也都广泛运用了 Docker。

上面说了这么多,就是为了阐明它现在在干流技能中的地位,能够预见这也是现在的一个正确趋势,为了不沦为菜鸟,咱们有必要技能上得跟进这一块。


为什么要运用Docker


那你可能会问了,之前 linux 就有容器化的功能特性呀,Docker的容器化有啥好处呢?


6.jpg

咱们能够将 Docker 理解为一种沙盒。每个容器内运转一个运用,不同的容器彼此阻隔,容器之间也能够建立通讯机制。而且容器的发动和中止都十分快速,自身对资源的需求也十分有限,远远低于虚拟机。咱们在公司都直接把容器作为运用自身的。

为了更好的理解呢,这儿我举一个比如。

假设你们公司现在要搞一个网站,技能选型运用最常见的 LAMP(Linux + Apache + MySQL + PHP)。依照传统的做法,咱们是不是要先安装 Apache、MySQL 和 PHP 以及他们所需求依赖的环境。然后得分别对这些运用软件进行装备(创立用户、装备参数等等)。依照经验装备过程中必定还会出各式各样的问题,操作了一大堆十分困难处理了,服务发动了,开端测试又出了问题。。。

7.gif

依照上面这个过程能够幻想,假如要布置多台机器,那必定花费的时刻又多,危险又大。更为可怕的是,一旦服务器迁移(腾讯云迁移到阿里云),那必定又得从头搞一遍布置、调试。这纯粹就是体力活,假设搞活动,要扩容,你这个操作下来黄花菜都凉了。

那这个时分,咱们今日要聊的主角Docker必定该上台了。Docker 供给了一种非常聪明的办法,通过容器来打包运用,也就是说假如要迁移那只要在新的服务器发动容器就好了,简略的一笔。是不是节约了时刻,也降低了布置过程中出现问题的危险。

这个和Java还是有点像的,一次性创立,能够在任意环境、任意时刻让运用正常的履行


Docker与虚拟机的比较


在运用 Docker 之前,咱们都是运用虚拟机软件(VMware、VirtualBox等)来安装一个操作体系,然后再安装咱们需求的运用。那 Docker 和传统这种虚拟机方法有啥差异呢?咱们从发动速度、磁盘运用、功能、体系支撑数量、阻隔性等方面给咱们总结一下看看。


8.png


Docker 容器除了运转其中的运用外,基本上不耗费额外的体系资源,保证运用功能的一起,尽量减少了体系开销。

传统虚拟机运转 N 个不同的运用就要发动 N 个虚拟机(每个虚拟机都要独自的分配独占内存、磁盘等资源),而Docker虚拟机只需求发动 N 个阻隔的容器,并将运用放到容器内即可。

假如看到这儿你还对 Docker 和 咱们常常运用的虚拟机(VMware、VirtualBox)方法的虚拟化不太了解,那么记住下面这张图就够了。

9.jpg

Docker 容器是在操作体系层面完成虚拟机,直接复用本地主机的操作体系,因此更加轻量级。


总结


这篇文章主要为咱们讲解了Docker是什么,以及它的优势。Docker 为 Linux 容器技能供给了更简便的运用和管理计划,Docker 让容器技能变得前所未有的便利易用。

欢迎关注大众号【Java技能指北】,第一时刻获取更多精彩内容。

有任何问题能够在大众号后台留言,指北君会第一时刻回复咱们。