当前位置: 首页 > news >正文

也说说Docker、Moby和Rancher

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在之前的DockerCon上,Docker官方公开了Moby项目——将Docker组件化成一系列程序集。DockerCon上有一个简单的demo,用moby工具将各种组件组装到定制的Linux操作系统镜像中。这看上去很酷,但同时也让很多人困惑。同时,关于Moby的热议和争论也从未停止过。

本文的作者是Rancher Labs的首席架构师兼联合创始人Darren Shepherd,同时也是Docker的maintainer。我们想提供一些关于Moby项目的背景和解释,以及它将如何影响Rancher、RancherOS和我们的用户。

Moby项目的一些背景

其实早在几个月前,关于Moby项目的讨论就已经在Docker Project maintainer之间展开了,这一切都是由于Docker既是一个产品、又是一个项目的双重性质。这个双重性在一开始是给Docker(既是指Docker项目,也是指Docker公司)带来了不少好处的。但是最终,Docker公司必然要走到这个决定的路口,决定他们的产品到底应该是什么样,将来究竟是什么走向。作为Docker maintainer的我们,认为产品和项目确实应该分开。

Docker公司的最终目标,是在过往工作的基础上,进一步将Docker组件化。 Docker的组件化并不是什么新鲜议题了,这项工作已经进行了很长时间,从runc和containerd开始,长期以来它一直是Docker项目的目标。多亏一千个贡献者和maintainer,到目前为止,Docker仍是一套组织良好的library和package。

Moby项目将Docker项目转变成了完全组件化的架构,并为绝大多数的Docker代码、而非产品本身提供了新的归属。 Moby让我们这些社区成员得以以前所未有的方式为容器技术的创新和发展作出更多贡献。如今,我们可以从技术角度来处理一些非常有效的用例,不过这与以前的Docker产品有冲突。而举例来说,RancherOS就是这么一个用例。

Moby会如何影响Rancher、RancherOS和我们的用户?

那么,Moby对Rancher、RancherOS和我们的用户会产生什么影响呢?答案是,大多数用户不会看到任何改变:Docker还是Docker。它将继续是您所了解和喜爱的Docker(并且有可能会有更好的内部架构)。

在RancherOS里你会看到什么改变?RancherOS是一个高度专业的容器应用,它是一个所有组件都是容器的操作系统。要使RancherOS成为可能,我们在Docker中需要一些真正的low-level的knob。而即使这有可能不利于Docker UX,Docker仍为我们提供了许多这样的knob。比如说,--uts = host:我猜99%的Docker用户都不知道这个标记是什么,但是RancherOS需要它,有了它,DHCP才可以动态地传播主机名的更改。

从长远来看,Moby项目是将给RancherOS带来积极帮助的。我们可以继续保持相同的Docker用户界面,但是通过Moby,我们可以访问所有我们需要的low-level的Linux knob。最后,用户将拥有的会是一个更轻量、更快、更安全的RancherOS。 Moby项目对于Rancher而言也是非常好的:Rancher旨在管理Docker容器,在将来,我们还可以管理从Moby Project组装的定制Linux组件。

写在最后…

Moby引发的热议仍未停息,业界也有很多质疑和不满的声音。而我们只想关注更积极的一面,和Docker用户、Rancher用户及容器生态系统中的所有人一起,继续为开源、为容器的发展作出贡献。

转载于:https://my.oschina.net/u/3330830/blog/1544703

相关文章:

  • React 的性能优化(一)当 PureComponent 遇上 ImmutableJS
  • 软件需求分析
  • 关于Java的File类、字节流和字符流
  • 米扑科技助力公益:寻找失踪儿童一起回家
  • sql server 判断系统中是否存在某个表,存储过程 或触发器
  • 智能数据变革来临:我为什么看好Chinapex创略模式
  • 大数据如何解决行业挑战?大数据在10个垂直行业中的应用
  • 注意!综合布线系统管理的八大坑
  • 【JAVA零基础入门系列】Day4 变量与常量
  • 疯狂Spring Cloud连载(6)——负载均衡框架Ribbon介绍
  • 汉诺塔算法
  • 使用OTL进行数据库编程
  • Qt中的qrc文件
  • python sys 模块
  • redis可视化工具的安装和调试
  • @angular/forms 源码解析之双向绑定
  • Debian下无root权限使用Python访问Oracle
  • gulp 教程
  • Java 内存分配及垃圾回收机制初探
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Linux Process Manage
  • Mac转Windows的拯救指南
  • MYSQL 的 IF 函数
  • nodejs实现webservice问题总结
  • PAT A1017 优先队列
  • spark本地环境的搭建到运行第一个spark程序
  • yii2权限控制rbac之rule详细讲解
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 前端之React实战:创建跨平台的项目架构
  • 微信开源mars源码分析1—上层samples分析
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 栈实现走出迷宫(C++)
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​如何在iOS手机上查看应用日志
  • #FPGA(基础知识)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (07)Hive——窗口函数详解
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (待修改)PyG安装步骤
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • ******之网络***——物理***
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(一):@echo off
  • .NET DataGridView数据绑定说明
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • /proc/vmstat 详解
  • @Import注解详解
  • @RequestMapping 的作用是什么?
  • @软考考生,这份软考高分攻略你须知道
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians