为什么说docker不是容器

发布时间 - 2023-05-16 00:00:00    点击率:

从容器化技术诞生的那一刻起,docker就成为了这个领域的佼佼者。然而,有一个声音越来越响亮,和 docker 不是“容器” 有关。这句话说的匪夷所思,因为 docker 一直以来都是容器化技术的代名词,都是人们口口相传说着docker container。

那么,为什么有人会说 Docker 不是“容器” 呢?如何理解这个问题?本文将从技术实现原理和哲学层面,解析 Docker 为什么不是“容器”。

  1. 技术实现原理

Docker 最初的创意并不是容器化,而是在 LXC(Linux Container)基础上将其封装,用一套 REST API 呈现出来,进而方便应用开发者进行使用,这就是 Docker 最初的理念。Docker 技术最初支持的是单一进程的程序,它是以提交了一个 Image 镜像文件为基础,一旦镜像提交,Docker 就可以通过该镜像启动一到多个容器,容器中运行着应用进程。

与传统的虚拟化技术(如 VMWare、Virtual Box)相比,Docker 使用的是进程级别的隔离,即在同一个主机上的多个容器可以共享同一套操作系统内核。这样可以节省大量的资源开销,轻松实现快速部署、快速启动、快速迁移和版本管理等特性。

事实上,Docker 技术对原有的 LXC 技术进行了改进和提高,并将其封装成了一个更加轻量级、功能更为强大的容器引擎。从这个角度来看,Docker 并不是原生的容器技术,而是对容器的封装和加强,所以有人说 Docker 不是“容器”。

  1. 哲学层面

此外,还有一个从 Docker 哲学层面上考虑的问题,Docker 并没有真正做到“容器”的安装、配置、运行和移除这些方方面面的管理。在 Docker 中,镜像的构建、更新和版本控制仍然是开发者自行管理的。这意味着,Docker 并没有完全开发出一个统一的机制来管理容器和镜像,从而使得或多或少还需要进行一些手动工作。

并且,Docker 对底层的容器技术做了太多的封装,变得过于复杂,容易引起初学者的困惑。而它本身所包含的太多的坑和限制,使得容器化这一本来简化流程的方法变得复杂了。

从这个角度来看,尤其从工程实现层面上考虑,Docker 并不能被归为“容器”,因为它仍然需要在机制上进行完善。

  1. Docker 是容器吗?

既然上述两点给出的答案是“不是” ,那么 Docker 系统的性质与特点究竟是什么?毋庸置疑,Docker 是一种应用环境部署和管理的解决方案,它与容器技术密切相关。Docker 的造福在于其出色的操作简便性、高效的沙盒机制、方便的镜像制作和共享方式以及部署容器的便利性。Docker 给人们带来的是更加科学、更加快捷、更加方便的部署方法。因而,Docker 可以被看做是一个应用环境解决方案,而不是“容器”的干货。

总结

本文从 Docker 技术实现原理和哲学层面两个方面,解释了为什么有人说 Docker 不是“容器”。事实上,Docker 被定义为一种应用环境部署和管理的解决方案。这并不意味着 Docker 取代了或者不需要容器技术,反而说明了 Docker 技术是基于容器技术上的增强,更好地实现了容器技术的价值。虽然 Docker 的性质与特点不是容器,但是 Docker 带来的改变是应用环境管理的一大跨越,带来了极大的便利性和灵活性。


# 镜像  # 的是  # 都是  # 太多  # 多个  # 最初  # 人说  # 新和  # 是一个  # 事实上 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 深圳网站制作的公司有哪些,dido官方网站?  如何用低价快速搭建高质量网站?  制作公司内部网站有哪些,内网如何建网站?  移动端脚本框架Hammer.js  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何快速搭建高效简练网站?  Laravel如何实现用户密码重置功能?(完整流程代码)  如何用y主机助手快速搭建网站?  JavaScript如何实现音频处理_Web Audio API如何工作?  香港服务器如何优化才能显著提升网站加载速度?  如何用虚拟主机快速搭建网站?详细步骤解析  简单实现jsp分页  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何优化应用性能?(缓存和优化命令)  jquery插件bootstrapValidator表单验证详解  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  HTML 中动态设置元素 name 属性的正确语法详解  EditPlus中的正则表达式 实战(1)  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  制作电商网页,电商供应链怎么做?  如何在腾讯云服务器快速搭建个人网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在IIS7中新建站点?详细步骤解析  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  西安专业网站制作公司有哪些,陕西省建行官方网站?  WordPress 子目录安装中正确处理脚本路径的完整指南  如何快速生成橙子建站落地页链接?  微信小程序 HTTPS报错整理常见问题及解决方案  浅谈Javascript中的Label语句  JS去除重复并统计数量的实现方法  想要更高端的建设网站,这些原则一定要坚持!  如何在七牛云存储上搭建网站并设置自定义域名?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  焦点电影公司作品,电影焦点结局是什么?  Laravel怎么使用artisan命令缓存配置和视图  ,交易猫的商品怎么发布到网站上去?  高防服务器租用如何选择配置与防御等级?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理