其实连Docker公司都把Docker用错啦

前言

好吧,我承认我标题党了。但是这篇内容应该让你从一个新的角度理解Docker的本质是什么。

Docker其实是static link 的一种回归。

我们在学C的时候,就有静态链接,动态链接,本质上是程序代码库的复用而已。那个时候我们认为动态链接库是最优的。为什么呢?因为一开始磁盘很贵,内存很贵,网络也很贵!是的,我们节省了硬件相关的东西,但是我们也为处理系统的各种链接库版本而付出了惨重的代价,浪费了程序员多少光年。Hey,身为程序员的你,是不是多次为编译依赖的链接库而苦恼不已。而随着程序规模的不断庞大, 各种依赖冲突也是不断。

现在,是时候让静态链接发挥作用的时候了。你看Docker容器动则几百M。如果是以前,你分发一个程序要几百M,你自己都吐血了,但是现在,大家已经毫不犹豫的感觉什么都没有发生的一样,接受了动则几百M的镜像了。

Docker无侵入性的让现存的进程变成具有资源限制的进程

假设你用Docker运行MySQL。当你使用ps命令,你只能看到MySQL进程,而看不到包裹他的壳(容器)的影子。是的这里的主体依然是MySQL,而不是壳,我们有时候会因为这个漂亮的壳而出现买椟还珠的有趣事情。

既然Docker只是无侵入性的让现存的进程变成具有资源限制的进程,那么进程原来是什么样,就应该是什么样:

  • 对于网络,Host 模式足够啦,高效而不带性能损失。其他的模式让你无谓的各种复杂
  • 对于硬盘,mout 本地磁盘足够了,为什么还有新的文件系统?
  • 为什么有registry 这个东西? Image 不就是个文件么,提供一个标准的文件下载服务器存放image不就行了?

程序和镜像本身也不是耦合的。只是程序运行的时候顺带加上容器这个壳,从而实现资源的隔离。这种模式该是怎么样的呢?

比如,我部署tomcat服务,以前是要现在服务器上部署调试好tomcat,然后分发war包运行。现在是我把war包放到一个目录,然后运行tomcat docker容器并且加载它就好(我们最漂亮-v参数)。对的,我们只是运行一个进程,并且指定了他的数据目录或者程序目录,就是这样。

MySQL也是,你为什么要纠结能不能把MySQL的存储也放到容器里呢?Docker容器+MySQL 就是MySQL啊,只是给MySQL包了个跨平台的壳,但它依然只是个普通的进程呀,所以数据还是应该在宿主机的磁盘上。

我们的思想会被羁绊,这也是Docker公司的误导导致的,他为什么要在进程里面虚拟出一个文件系统的,而且各种各种的实现,让有选择障碍性的人纠结的要死,因为他是一家商业公司,希望把大家绑定在自己的生态上。所以,把数据剥离出来,和以前一样的方式,Docker容器只是一个壳,我们真正的主题还是被包裹的应用。

推销下我开发的一套容器调度工具: mammuthus-yarn-docker-scheduler

时间: 2024-10-08 03:23:56

其实连Docker公司都把Docker用错啦的相关文章

深度调查:24%的Docker镜像都存在严重漏洞

本文讲的是深度调查:24%的Docker镜像都存在严重漏洞, 了解容器生态系统中的漏洞情况对于网络安全的研究至关重要,今天我们就把话题转向Docker镜像,看看Docker官方软件库中当前的漏洞状态是什么? Docker官方仓库主要包含开源和商业软件的镜像,通常由作者或供应商管理,并包含Docker社区中 使用最广泛的镜像.其中有 20个最流行的镜像的的pull下载超过千万次.目前已有越来越多地第三代配置管理软件用这些镜像来替代其分布式系统管理的一些功能. 很少有技术能够像 docker 这样一

Docker公司DevOps领军人物John Willis:DevOps最佳实践

云栖TechDay31期,来自Docker公司的Devops理念的领军人物和布道者John Willis带来DevOps的三种方式的主要演讲.本文主要从为什么要用DevOps开始谈起,接着分享DevOps的三种方式,着重分析第一种方式,包括Immutable Service Delivery的Devops (Faster).Docker (Effective) .Supply Chain (Reliable),最后浅谈了第二种方式.   以下是精彩内容整理: 图为美国的一家金融机构所犯的错误,这

Docker 公司更换 CEO,将着重发力商业变现

Docker在2015年早期被贴上十亿美元估值的标签,那时"独角兽"是一个时下热词,风险投资家口中经常谈到的是FOMO(唯恐错过). 当时该软件初创公司收入不到500万,但这不重要.投资者的重心在于Docker在开发者中高涨的知名度--Docker作为一套自由的.开源的工具,可以轻松用来将代码在机器间移动,并在应用推送到线上之前用来测试. 在编程团队中,Docker已经变得如此无所不在,以至于在过去的两个月里像IBM.Oracle和Cisco这样的巨头公司发布新闻公告宣传该项技术对于他

访谈 | Docker公司首席布道师谈容器和下一代虚拟化

本文讲的是访谈 | Docker公司首席布道师谈容器和下一代虚拟化,[编者的话]本文为LinuxCon讲师采访的一部分,Docker公司的Jerome分享了Docker与其它容器技术的区别.Docker容器的存储和数据迁移.Docker在企业中的应用等话题. Jerome是Docker公司的首席布道师,也是老员工.对社区运营和容器非常了解.本文根据对他的采访整理而成. 在这次的访谈中,Jerome深入分析了Docker并解释了如何管理Docker容器的存储,以及如何随着Docker容器迁移数据.

Docker公司正式在华推出镜像加速服务

Docker公司今日宣布正式向中国市场推出镜像加速服务,方便中国用户在国内网络下载最受欢迎的Docker镜像.此前,尽管Docker尚未推出本地服务,中国仍然占据Docker全球流量前三位.现在,中国用户将可以更快捷地下载Docker镜像库中数千个热门镜像,并以这些镜像作为核心,快速封装新的分布式应用.Docker公司将中国地区的镜像库托管和运行在阿里云上,使本地用户可以享受更快捷.更稳定的容器镜像下载,开发并交付基于容器的应用.     Docker公司首席市场官David Messina表示

Docker公司宣布将重点关注容器安全

[编者的话]本文是对11.16欧洲DockerCon大会的简短报道.重点在Docker容器安全领域的新特性,对于在生产环境中更安全使用Docker有很大的参考价值. Docker 公司在巴塞罗那举办的 DockerCon Europe 大会上宣布三款安全工具以及容器的一些新特性. 这些工具在不影响开发者正常工作流的情况下,使开发者使用容器更加安全.它们包括:使用Yubico硬件密钥.支持用户名称空间,这样Docker容器就不再需要root权限连接了.这两个新特性可以在Docker实验版本频道获取

Canonical 和 Docker 公司宣布新的商务合作意向

Canonical 和 Docker 公司宣布了一个新的商务合作意向,承诺为 Ubuntu Linux 提供商业版 Docker 引擎的企业级支持和 SLA. 这两家公司将在 Ubuntu 平台上集成商业版 Docker 引擎,这样 Canonical 就可以一体化为其客户提供商业版 Docker 引擎和 Ubuntu Linux 系统的支持. "通过我们的合作,将商业版 Docker 引擎带到了庞大的 Ubuntu 社区, 在敏捷性.移植性和安全性方面为用户提供了更多选择."Dock

Docker 公司是如何做社区的?

今天看了一个Docker公司是如何做社区的PPT,演讲者是Docker公司的市场部老大.Docker从发布之初就受到了开发者的关注,1.0版本发布的时候Docker就收到了超过460位贡献者的8741条改进建议,Docker也承认是社区帮助他们迅速达到了这一新的里程碑.在每周订阅的Docker周报里,看到来自世界各地的爱好者分享关于Docker的博文以及各个国家的meetup,不禁为Docker的社区点赞.近日,Docker社区经理分享了Docker在社区孕育方面的经验,我在PPT的基础上进行了

最前线的 Docker 实践者都在做什么?

为普及Docker知识,推动国内Docker生态系统的建设,为Docker爱好者和使用者提供一个实战平台,云雀科技启动了"Docker巨好玩"镜像构建挑战赛.自活动发布以来两周的时间内,收到了来自全国各地的60多位选手及团队报名参赛,参赛者涵盖了研发.运维.产品等各个职位,其中有10多位选手已经提交了作品,参赛主题也是五花八门,只有你想不到的,没有大家做不到的. 作为本次活动的主办方,除了选出最优秀的镜像作品外,我们更希望能够集思广益,充分调动大家的创造性,不仅为这些Docker爱好者