前情概要

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商业版受限,胖容器是个选择的更多相关文章

  1. 搭建基于Docker社区版的Kubernetes本地集群

    Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...

  2. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

  3. 数人云CTO解读Docker 1.12和金融业容器化

    7月29日 数人云 在上海举办金融沙龙,邀请上交所和近二十家来自银行.保险.证券的IT技术专家一同探讨容器技术在金融业中的最佳实践.数人云CTO肖德时在会上将传统金融行业通过容器可以解决的四大问题做了 ...

  4. 026.[转] 基于Docker及Kubernetes技术构建容器云平台 (PaaS)

    [编者的话] 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用.弹性伸缩和动态调整应用环境资源,提高研发运营效率. 本文简要介绍了与容 ...

  5. Docker+JMeter+InfluxDB+Grafana从容器内部发起压测

    1.自由定制JMeter镜像: Dockerfile文件: FROM java:8# 基础镜像 MAINTAINER yangjianliang <526861348@qq.com># 作 ...

  6. Docker 进入正在运行的容器的4种方式

    在使用Docker创建了容器之后,如何进入该容器呢? 进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker ...

  7. [Docker镜像] 关于阿里云容器镜像服务的使用(以天池比赛提交镜像为例)

    最近在参加天池比赛,由于比赛需要使用阿里云容器镜像服务完成线上预测任务,所以花费了3-4天的时间了解并使用Docker完成相关镜像操作,在此分享下我学习的内容,以下是本文的目录结构: 介绍 镜像 容器 ...

  8. 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云

    一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...

  9. Docker的镜像理解以及容器的备份、恢复和迁移操作

    Docker的镜像理解以及容器的备份.恢复和迁移操作 这篇文章主要介绍了Docker的镜像理解以及容器的备份.恢复和迁移操作,覆盖很多原理知识以及容器的重要操作步骤,极力推荐!需要的朋友可以参考下 D ...

随机推荐

  1. RACTF-web C0llide?(js弱类型)

    源码: const bodyParser = require("body-parser") const express = require("express") ...

  2. cli框架 获取 命令行 参数

    package main import ( "fmt" "log" "os" "github.com/urfave/cli&quo ...

  3. sublime text 配置文件

    不慌. 上网上下的clang全是报错,所以就想先配置一下文件. 其实它本来的配置我觉得挺好的. 可能因人而异有些地方还是改了改. 原版有英语注释的,就当是学英语了 // While you can e ...

  4. JavaScript 中的模块化

    JavaScript 中的模块化 最早的基于立即执行函数,闭包的模块化 const MountClickModule = function(){  let num = 0;  const handle ...

  5. java图片压缩工具类(指定压缩大小)

    1:先导入依赖 <!--thumbnailator图片处理--> <dependency> <groupId>net.coobird</groupId> ...

  6. PHP easter_days() 函数

    ------------恢复内容开始------------ 实例 输出不同年份的复活节与 3 月 21 日之间的天数: <?phpecho "Easter Day is " ...

  7. PHP str_word_count() 函数

    实例 计算字符串 "Hello World!" 中的单词数: <?php高佣联盟 www.cgewang.comecho str_word_count("Hello ...

  8. spring的IOC(反转控制)

    Spring概念 1.1.1 spring 是什么 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制 ...

  9. 【每日一个小技巧】Python | input的提示信息换行输出,提示信息用变量表示

    [每日一个小技巧]Python | input的提示信息换行输出,提示信息用变量表示 在书写代码的途中,经常会实现这样功能: 请输入下列选项前的序号: 1.选择1 2.选择2 3.选择3 在pytho ...

  10. vue中模块局部刷新

    父组件: 一. 父组件中引入子组件           data中定义变量 二. 定义provide函数 三.写reload方法 需要刷新的那个子组件: 一.引入                   ...