颠覆传统运维,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的容器化有啥好处呢?


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技术指北】,第一时间获取更多精彩内容。

有任何问题可以在公众号后台留言,指北君会第一时间回复大家。



相关文章
|
1月前
|
缓存 运维 Docker
容器化运维:Docker Desktop 占用磁盘空间过大?教你轻松解决!
Windows Docker Desktop 使用过程中,因镜像、容器数据及构建缓存的累积,可能导致磁盘空间占用过高。通过删除无用镜像与容器、压缩磁盘以及清理构建缓存等方法,可有效释放空间。具体步骤包括关闭WSL、使用`diskpart`工具压缩虚拟磁盘、执行`docker buildx prune -f`清理缓存等。这些操作能显著减少磁盘占用,提升系统性能。
375 4
|
1月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
3月前
|
运维 开发者 Docker
Docker容器化技术在运维中的应用实践
【8月更文挑战第27天】本文旨在探讨Docker容器化技术如何在现代运维工作中发挥核心作用,通过深入浅出的方式介绍Docker的基本概念、优势以及实际应用场景。文章将结合具体案例,展示如何利用Docker简化部署流程、提高资源利用率和加强应用的可移植性。读者将获得对Docker容器技术在实际运维中应用的全面认识,并能够理解其在提升运维效率与质量方面的重要性。
|
3月前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
139 3
|
3月前
|
运维 监控 持续交付
构建高效自动化运维体系:Ansible与Docker的协同实践
【7月更文挑战第42天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为提升效率、确保系统稳定性的关键。本文将探讨如何利用Ansible这一强大的自动化工具与Docker容器技术相结合,搭建一个高效、可靠的自动化运维体系。文章首先简述了自动化运维的必要性和Ansible与Docker的基本概念,随后详细介绍了两者结合的优势,并通过实际案例分析展示了如何实现自动化部署、管理和扩展应用服务。通过阅读本文,读者将获得一套可行的自动化运维解决方案,以应对日益复杂的IT环境挑战。
|
3月前
|
运维 监控 数据可视化
"揭秘Docker管理神器Portainer:一键解锁Docker可视化管理新境界,让你的运维工作轻松又高效!"
【8月更文挑战第11天】Docker简化了应用部署与管理,但容器规模增大时,高效管理变得挑战重重。Portainer作为轻量级Docker管理工具,以直观界面和全面功能脱颖而出。它不仅简化了容器的创建、监控与操作,还涵盖了镜像、网络、卷管理及用户权限控制。Portainer易于部署,兼容单机与Swarm集群,降低学习门槛。本文深度剖析Portainer优势,并通过实例展示其实用性,使读者对其功能与价值有深刻理解。
92 3
|
3月前
|
存储 运维 Linux
运维系列.在Docker中使用Grafana(一)
运维系列.在Docker中使用Grafana(一)
408 5
|
3月前
|
存储 Linux 数据库
运维系列.在Docker中使用Grafana(二)
运维系列.在Docker中使用Grafana(二)
126 4
|
3月前
|
运维 Shell Linux
运维专题.Docker功能权限(Capabilities)管理和查看
运维专题.Docker功能权限(Capabilities)管理和查看
116 1
|
4月前
|
Ubuntu Linux Docker
Java演进问题之Alpine Linux创建更小的Docker镜像如何解决
Java演进问题之Alpine Linux创建更小的Docker镜像如何解决
下一篇
无影云桌面