大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响

Posted 苏研大云人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响相关的知识,希望对你有一定的参考价值。

大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响

友情提示:全文3000多文字,预计阅读时间8分钟

Docker公司于8月13日更新了最新的《服务条款》,该条款要求禁止被美国列入贸易管制“实体清单”的组织和个人使用遵循该服务协议的Docker网站和其相关网站。


一、服务条款

条款1.1,1.2以及20.8写到:

大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响
图片(1)

Docker, Inc 向您提供可通过 docker 网站以及所有带有“Terms of Service”链接的其他关联网站获取的 Docker 内容和 Docker 服务(统称为“服务”)。本服务协议管理所有服务的获取和使用,但在单独的许可条款下获取和使用 Docker 软件的情况除外。


如果您或者您所处的组织被列入美国“实体清单”,则不得使用服务。

大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响
图片(2

您了解该服务受美国商务部和美国财政部外国资产控制办公室管理的美国出口管制的约束。您承认并同意,不得使用,转让或以其他方式将您访问的服务和任何用户内容或第三方内容出口或再出口到美国维持禁运的国家(统称为“禁运国家”),或由其国民或居民使用,或由美国财政部特别指定国民名单或美国商务部的“实体名单”,被拒绝人士名单或未核实名单,或美国财政部的任何个人或实体所致州的不扩散制裁名单(统称为“指定国民”)。


从条款中看到, 禁运国家以及被列为“美国实体清单”、“特别指定国民清单”、“被拒绝人清单”、“未核实清单”和“防扩散为清单”的组织和个人是无法使用Docker及其相关服务了。当前被列入“实体清单”的中国科技企业包括:华为、商汤、依图、旷视、海康威视、大华、科大讯飞、美亚柏科、颐信科技、奇虎360、烽火科技集团、东方网力、达闼科技、云从科技、中科曙光、海光等。


二、影响解读

目前Docker公司有三款产品及服务:Docker商业版、Docker Hub、Docker Desktop。


可以明确的是,这三款产品以及Docker公司提供的其他服务是受到了限制。但是对于Docker社区版,Linux 基金会亚太区首席战略官 Keith 于8月16日在社交媒体平台表示:美国出口管制的事,开源不受影响,Docker 开源版可以继续使用,受影响的是商业版。


所以对于Docker社区版,目前仍然是可以继续使用的,但是同样遵循该协议的Docker Hub的使用应该是要受到限制了。


Docker商业版和Docker社区版有什么区别?为什么Docker社区版可以继续使用呢?


Docker之前仅有Docker项目,但是后来Docker公司将Docker项目改名为Moby,并且推出了Docker EE(商业版)和Docker CE(社区版),前者是企业收费版, 后者是社区免费版。目前绝大多数使用的都是Docker CE版本,由Moby项目产生。该项目为开源项目并且遵循Apache License, Version 2.0开源许可。


在今年7月8号,Linux基金会发布了“了解开放源码技术和美国出口控制”白皮书。提及:

大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响
图片(3)

隶属于 Linux 基金会的 CNCF 也曾对“开源受限”进行澄清:


Linux 基金会希望重申其对美国出口管制法规在公共、开放式协作项目(例如,开源软件、开放式标准、开放式硬件和开放数据)中的适用性的声明和分析,以及开放式协作对全球发展中最重要的技术的成功实施的重要性……我们项目社区的成员和其他参与者横跨许多国家,他们清楚地希望继续与世界各地的同行合作。


Docker社区版因为“已公开发布”并且属于“开源”项目,所以应该不受上述服务条款的影响。


但即便是这样,仍然引发进一步担忧。Docker除了被单独用来运行容器外,更在容器编排服务Kubernetes中有着举足轻重的作用。Docker在Kubernetes中又有哪些替代服务呢?



三、Kubernetes中Docker替代方案

Kubernetes(K8s)现已支持多种容器运行时,Docker只是其中的一种。K8s兴起时,发现世面上Docker是最流行的容器实现,于是便使用Docker来作为底层的运行时。但是后面容器运行时越来越多,比如CoreOS开发了rkt,它与K8s也可以协同工作。为了进一步规范容器运行时,开源社区推出了Open Container Initiative规范,也就是OCI,容器运行时需要遵循这个标准进行开发。

K8s为了和容器运行时进行解耦,推出了Container Runtime Interface标准,即CRI。它是K8s和容器运行时交互时定义的接口。所以CRI和OCI是分属于两个不同层面的东西,前者侧重于K8s和运行时的交互,后者则是容器运行时本身的规范。


当前K8s支持的容器运行时主要有:Docker、CRI-O、Containerd以及Frakti。CRI-O由红帽主导开发,是一个轻量级的K8s容器运行时,实现了最小的CRI接口,是CRI的一种标准实现。Containerd其实是从docker engine中剥离出来单独作为一个组件的,所以在最新版本的docker中,containerd是一个单独的组件,通过cri-containerd实现了CRI接口。而Frakti是基于虚拟机管理程序的Kubernetes容器运行时接口程序,通过 runV服务接在管理程序内部运行容器,更侧重容器的安全性和隔离性。

大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响
图片(4)

虽然从目前情况来看,Docker仍然是使用最为广泛的,但是得益于K8s的CRI标准和OCI的运行时标准,Containerd、CRI-O、Frakti作为满足这些标准的运行时,通过修改K8s一些配置,也可以无差别的与K8s对接。所以如果后续Docker仍然存在变数的情况下,Containerd, CRI-O均可作为替代。需要注意的是,Containerd和CRI-O各有其单独的命令客户端,Docker的命令客户端不再适用。如果进行替换的话,在运维维护上可能会带来额外的成本。Containerd和runc在GitHub主页均已表明遵循Apache 2.0 license开源许可,CRI-O虽然在LICENSE指明也遵循该许可,但源码文件中尚未完善。


开源应该遵循开放和共享,“开放式协作对全球发展中最重要的技术的成功实施很很重要”。


至于Docker Hub和Docker Desktop,在实体清单中的企业及用户将不能使用。Docker Hub作为全球最受欢迎的容器镜像仓库势必受到影响,用户可以选择其他公有云镜像仓库作为首选仓库。


备:文中涉及的图片(1-3)来自Docker《服务条款》,最终解释权归Docker公司所有。


参考链接

【1】https://www.docker.com/legal/docker-terms-service

【2】https://www.linuxfoundation.org/blog/2020/07/understanding-us-export-controls-with-open-source-projects-cn/

【3】https://github.com/moby/moby

【4】https://github.com/containerd/containerd

【5】https://github.com/cri-o/cri-o

【6】https://github.com/opencontainers/runc

【7】https://github.com/kubernetes/frakti

【8】https://kubernetes.io/docs/setup/production-environment/container-runtimes/

【9】https://github.com/kubernetes/kubernetes

【10】https://www.docker.com/





作者简介

孙帅

中国移动云能力中心 云原生开发工程师,参与了移动云容器服务的项目研发,在Kubernetes和容器领域有丰富实践经验





往期精选





1、

2、

以上是关于大云资讯 | Docker被禁用?解读Docker禁止美国“实体清单”主体使用之影响的主要内容,如果未能解决你的问题,请参考以下文章

如果 Docker 真被禁用了,我们有哪些替代品?

继Matlab被美禁用后,容器引擎Docker更新协议,华为等公司被禁用

继哈工大MATLAB被美禁用后,Docker禁止被列入美国实体清单的组织和个人使用!

CoreOS 835.12.0 稳定版安装

Docker网络详解及pipework源码解读与实践

“深入浅出”来解读Docker网络核心原理