容器和活页夹之间有什么重要的概念区别吗?

Any significant concept difference between container and binder?

我是 Docker 的新手,对容器化的概念感到困惑。我想知道 Docker 容器和 Binder 项目之间的主要区别。这是 Google 搜索的定义:

  1. Docker 容器是 运行 应用程序的标准化封装环境。
  2. Binder 或“Binder-ready 存储库”是一个代码存储库,其中包含 运行 的代码和内容,以及 运行 它所需的环境配置文件。

任何人都可以详细说明一下吗?谢谢!

你的困惑是可以理解的。 Docker 本身有很多要遵循的内容,然后添加 Binder,如果你在幕后看,它会变得更加复杂。

需要注意的一个重点是,典型用户对 MyBinder.org 的大部分使用旨在消除这些用户了解 Docker、Docker 文件语法和容器的概念等。您包含使存储库 'Binder-ready' 的 configuration files 的想法是使生成容器更容易,而无需编写dockerfile 使用 dockerfile 语法。您可以或多或少地简单地在 requirements.txtenvironment.yml 中列出您需要的包,而不处理制作 docker 文件,同时仍然让那些依赖项已经安装在您最终得到的容器中environment.ymlrequirements.txt 更复杂,因为 .yml 文件有语法,而 requirements.txt 最基本的只是一个列表。用户在启动结束时获得的活动容器对于一般用户而言并不明显。通常,他们应该从启动会话到拥有他们在远程计算机上的活动 JupyterHub 会话中指定的环境。

Binder 结合了相当多的技术,包括 docker 来制作 MyBinder.org work. MyBinder.org is a public BinderHub 这样的东西。 Binderhub 实际上只是集群上的专用 JupyterHub 运行,它使用图像为用户提供容器。
您可以将 MyBinder.org 指向一个存储库,它将启动一个包含该内容的 JupyterHub 会话,以及一个基于存储库中任何配置文件的环境。如果没有任何配置文件,您将拥有内容,但它只会为您提供默认的 Python 堆栈。

Binder 使用 repo2docker 获取存储库并将其变成可以与 docker 一起使用的东西。您可以 运行 repo2docker 自己在自己的机器上本地化,并根据需要使用生成的图像生成 运行ning 容器。

构建的图像指定您从 MyBinder.org 获得的 JupyterHub 上的环境有支持。事实上,您从 MyBinder.org 获得的会话是 Kubernetes 集群上的 运行ning docker 容器 运行ning。