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

大家好,我是指北君。

如果说个人主机时代大家都是比拼单机 CPU 主频的高低和内存的大小,那么现在的云计算时代,虚拟化技术毫无疑问是时代的主流了(进一步压榨硬件资源)。而 Docker 就是实现轻量级虚拟机技术的代表了。它实现了应用组件级别的 “一次封装,到处运行”。

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

现在主流的 Linux 操作系统已经支持 Docker。例如 Redhat 6.5、CentOS 6.5 往上的版本、Ubuntu 14.04 等操作系统,都已经默认带有 Docker 软件包了。目前我们使用的各种云服务器平台也都广泛应用了 Docker。

上面说了这么多,就是为了说明它目前在主流技术中的地位,可以预见这也是目前的一个正确趋势,为了不沦为菜鸟,我们必须技术上得跟进这一块。

为什么要使用Docker

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

大家可以将 Docker 理解为一种沙盒。每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以建立通信机制。而且容器的启动和停止都十分快速,自身对资源的需求也十分有限,远远低于虚拟机。我们在公司都直接把容器当做应用本身的。

为了更好的理解呢,这里我举一个例子。

假如你们公司现在要搞一个网站,技术选型使用最常见的 LAMP(Linux + Apache + MySQL + PHP)。按照传统的做法,我们是不是要先安装 Apache、MySQL 和 PHP 以及他们所需要依赖的环境。然后得分别对这些应用软件进行配置(创建用户、配置参数等等)。按照经验配置过程中肯定还会出各种各样的问题,操作了一大堆好不容易解决了,服务启动了,开始测试又出了问题。。。

按照上面这个步骤可以想象,如果要部署多台机器,那肯定花费的时间又多,风险又大。更为可怕的是,一旦服务器迁移(腾讯云迁移到阿里云),那肯定又得重新搞一遍部署、调试。这纯粹就是体力活,假如搞活动,要扩容,你这个操作下来黄花菜都凉了。

那这个时候,我们今天要聊的主角Docker肯定该登场了。Docker 提供了一种非常聪明的方法,通过容器来打包应用,也就是说如果要迁移那只要在新的服务器启动容器就好了,简单的一笔。是不是节约了时间,也降低了部署过程中出现问题的风险。

这个和Java还是有点像的,一次性创建,可以在任意环境、任意时间让应用正常的执行

Docker与虚拟机的比较

在使用 Docker 之前,我们都是使用虚拟机软件(VMware、VirtualBox等)来安装一个操作系统,然后再安装我们需要的应用。那 Docker 和传统这种虚拟机方式有啥区别呢?我们从启动速度、磁盘使用、性能、系统支持数量、隔离性等方面给大家总结一下看看。

特性Docker容器虚拟机
启动速度秒级分钟级
硬盘使用一般为MB一般为GB
性能接近原生弱于
系统支持数量单机支持上千个容器一般十几个
隔离性安全隔离安全隔离

Docker 容器除了运行其中的应用外,基本上不消耗额外的系统资源,保证应用性能的同时,尽量减少了系统开销。

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

如果看到这里你还对 Docker 和 我们经常使用的虚拟机(VMware、VirtualBox)方式的虚拟化不太了解,那么记住下面这张图就够了。

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

总结

这篇文章主要为大家讲解了Docker是什么,以及它的优势。Docker 为 Linux 容器技术提供了更简便的使用和管理方案,Docker 让容器技术变得前所未有的方便易用。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值