Docker商业版受限,胖容器是个选择
前情概要
8月13日,Docker 公司更新了网站服务协议,条款申明,禁止禁运国家和被列入「美国实体清单」的组织和个人使用带有该服务协议链接的 Docker 网站和所有相关网站。这一更新协议迅速引起了业内的广泛关注与讨论,一时间有关“ Docker 被禁止使用”的讨论此起彼伏。
实际受限的产品与服务是什么?



结合1.1、1.2 和 2.5 条款,可以明确的是:
Docker 公司禁止被列入“美国实体清单”名单中的企业使用 docker.inc 网站提供的Docker 商业版 Docker-EE 及 Docker 其他服务,如 Docker Hub。
免费用户在使用 Docker Hub 时会在镜像数量、pull/push频次等方面受到限制,比如免费账号6个小时内限制下载200次等。虽然企业内部基本会部署自身的私有镜像仓库,但在构建或使用基础镜像时,可能仍然会受到此限制。
业内广泛使用的 Docker 开源容器引擎 Moby,因其采用了Apache License 2.0协议,并不会受到此影响,即开源版 Docker-CE 不受此影响。
预防和降低风险,胖容器是个选择
BoCloud博云作为国内率先使用容器开源技术的云计算厂商之一,对此次事件也在保持密切关注。 根据 Linux 基金会发布的“了解美国对开源项目的出口管制”,可以明确“已公开发布”并且属于“开源”的项目不受出口管制服务条款的影响。 博云容器云BeyondContainer 使用的是 Docker 开源社区版本 Docker-CE,因其为“已公开发布”并且属于“开源”的项目,因此 Docker-CE 该开源版本此次不受影响。另外,此次条款影响公有镜像仓库 Docker Hub 使用,博云的客户使用的是私有镜像仓库,也不会受到 Docker Hub 受限的影响。
虽然此次 Docker 开源版本没有受到影响与限制,但开源不等于不受管制。从长远发展角度而言,企业也需要提前考虑其他策略,来预防可能出现的进一步限制。为预防和降低风险,企业可考虑使用国内容器云厂商自行维护的容器版本,或选择同时支持多种开源容器运行时的容器云产品。 2019年底,博云发布了自主研发且自行维护的容器版本:BeyondVM胖容器(兼容传统应用,蓄力边缘云——博云胖容器解决方案)。BeyondVM胖容器提供相对完备的进程树和系统服务的容器环境,具有更好的隔离性,支持业务同时获得容器和虚拟机的运行体验,无需改变代码即可实现向容器平台的迁移,帮助客户快速容器化存量应用,快速渐进式地拥抱云原生技术。
利用 BeyondVM 胖容器技术,可以实现:
同时兼容原生容器和虚拟机的使用体验。
比虚拟机轻量的资源分配能力,以方便资源快速申请、弹性。
类似虚拟机的使用体验,可登陆,可任意安装组件。
有固定IP地址,胖容器从创建到删除,IP地址保持不变。
可以通过SSH远程登陆系统。
严格的资源隔离,如CPU、内存等。
JVM,监控类工具看到的资源不是整个物理机的资源,而是真实分配给胖容器使用的资源。
7月29日,中国信息通信研究院在 2020可信云大会上发布了国内首个云原生技术生态图景,BeyondVM 胖容器入选该图景的容器技术版块。目前,BeyondVM 胖容器已经过大规模生产应用检验,如有极限情况发生,可以在不升级版本的前提下,直接使用 BeyondVM 胖容器代替 Docker,并且能获得更好的隔离性,以及对有状态的应用提供更强的支持能力。
支持多种容器运行时,避免单一技术绑定
容器运行时作为支撑 kubernetes 节点的底层关键软件,近年来随着 kubernetes 的进一步发展,业内诞生了多种容器运行时。当前,在谈到容器运行时,就不得不提社区中的两个协议:OCI 和 CRI。这两种不同的协议,在各自领域各有不同的标准实现。
OCI 规范(Open Container Initiative 开放容器标准)聚焦于两部分内容:容器运行时标准(runtime spec)和容器镜像标准(image spec)。其中,兼容 OCI 规范的典型项目有 runc、kata 等。(BeyondVM胖容器兼容 OCI 标准,可以灵活与 Kubernetes集群进行集成。)
CRI 接口(Container runtime interface容器运行时接口),是 kubernetes 社区提出的对接多种容器运行时的标准接口,该接口分为两部分内容:一是容器运行时服务RuntimeService,负责管理pod和容器的生命周期;另一个是镜像服务ImageService,负责管理镜像的生命周期。其中,CRI 的典型实现有 docker、containerd 等。
虽然,基于 Docker 的容器运行时仍然是当前 kubernetes 的默认选择,但得益于kubernetes 提出的 CRI 接口,使得用户有了更多种的容器运行时选择。博云BeyondContainer容器云也即将提供 Docker 以外的其他多种容器运行时的支持,帮助企业用户避免单一技术绑定带来的风险。
Docker商业版受限,胖容器是个选择的更多相关文章
- 搭建基于Docker社区版的Kubernetes本地集群
Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- 数人云CTO解读Docker 1.12和金融业容器化
7月29日 数人云 在上海举办金融沙龙,邀请上交所和近二十家来自银行.保险.证券的IT技术专家一同探讨容器技术在金融业中的最佳实践.数人云CTO肖德时在会上将传统金融行业通过容器可以解决的四大问题做了 ...
- 026.[转] 基于Docker及Kubernetes技术构建容器云平台 (PaaS)
[编者的话] 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用.弹性伸缩和动态调整应用环境资源,提高研发运营效率. 本文简要介绍了与容 ...
- Docker+JMeter+InfluxDB+Grafana从容器内部发起压测
1.自由定制JMeter镜像: Dockerfile文件: FROM java:8# 基础镜像 MAINTAINER yangjianliang <526861348@qq.com># 作 ...
- Docker 进入正在运行的容器的4种方式
在使用Docker创建了容器之后,如何进入该容器呢? 进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker ...
- [Docker镜像] 关于阿里云容器镜像服务的使用(以天池比赛提交镜像为例)
最近在参加天池比赛,由于比赛需要使用阿里云容器镜像服务完成线上预测任务,所以花费了3-4天的时间了解并使用Docker完成相关镜像操作,在此分享下我学习的内容,以下是本文的目录结构: 介绍 镜像 容器 ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
- Docker的镜像理解以及容器的备份、恢复和迁移操作
Docker的镜像理解以及容器的备份.恢复和迁移操作 这篇文章主要介绍了Docker的镜像理解以及容器的备份.恢复和迁移操作,覆盖很多原理知识以及容器的重要操作步骤,极力推荐!需要的朋友可以参考下 D ...
随机推荐
- docker-compose安装zabbix
在网上的很多帖子,我亲自试过,多数不行,启动后zabbix_server是退出状态,所以觉得自己亲自写一篇帖子,以作记录 1.安装docker和docker-compose yum install - ...
- 修改map中原来的各种Key
简单描述: 做数据迁移的时候,需要展示数据库的字段信息,但是我发现 Oracle的sql查询到的结果 出来默认是大写的 和 前端vue的参数小写开头+驼峰 不太一样 所以后台取到的数据都是是引用Lis ...
- form表单两种提交方式的不同
我们在使用<Form>表单的时候,最常用的提交方式就是Get和Post.我们都知道这两种方式最大的差别就是安全性,除此之外,它们还有哪些其他的区别,你知道吗? 在<Form& ...
- Java 构造方法及关键字:this、super、final、static
一.构造方法 1.概念 在创建对象时,需要明确对象的属性值,即当使用new关键字创建对象时,同时给对象的属性初始化值. 这就需要用到构造方法.构造方法的格式: 修饰符 构造方法名(参数列表){ } 构 ...
- 【Gin-API系列】需求设计和功能规划(一)
场景需求 数据库存储2个模型,每个模型都有一个或多个IP字段,需要通过 Golang Http Api(Restful Api) 返回 IP 信息. 模型1 - 服务器 ID 主机名 IP 内存大小 ...
- __slots__属性
使用__slots__时,子类不受影响 class Person(object): __slots__ = ("name","age") def __str__ ...
- Python List sort()方法
描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数.高佣联盟 www.cgewang.com 语法 sort()方法语法: list.sort(cmp=None, ...
- PHP imageaffinematrixconcat - 连接两个矩阵
imageaffinematrixconcat — 连接两个矩阵.高佣联盟 www.cgewang.com 语法 array imageaffinematrixconcat ( array $m1 , ...
- 谈谈Spring中都用到了那些设计模式?
以下文章来源于微信公众号JavaGuide ,作者:JavaGuide JDK 中用到了那些设计模式?Spring 中用到了那些设计模式?这两个问题,在面试中比较常见.我在网上搜索了一下关于 Spri ...
- 笨办法学python3练习代码ex19.py
定义函数的语法: def 函数名(参数) (语句) #函数和变量 #函数里的变量与脚本里的变量是没有联系的. def cheese_and_crackers(cheese_count,boxes_o ...