【问题标题】:Any significant concept difference between container and binder?容器和活页夹之间有什么显着的概念区别吗?
【发布时间】:2021-12-08 05:44:25
【问题描述】:

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

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

谁能详细说明一下?谢谢!

【问题讨论】:

    标签: docker virtualization


    【解决方案1】:

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

    需要注意的一点是,典型用户对 MyBinder.org 的大部分使用旨在消除这些用户学习 Docker、Dockerfile 语法和容器概念等的需要。包含 configuration files 以使存储库“准备好”的想法是使生成容器变得更容易,而无需使用 dockerfile 语法编写 dockerfile。您可以或多或少简单地在requirements.txtenvironment.yml 中列出您需要的包,而不是处理制作dockerfile,同时仍然将这些依赖项安装在您最终工作的容器中。environment.yml 是一个步骤requirements.txt 的复杂性高于 .yml 文件的语法,而 requirements.txt 最基本的只是一个列表。用户在启动结束时获得的活动容器对于典型用户来说并不明显。通常,他们应该从启动会话到在远程计算机上的活动 JupyterHub 会话上拥有他们指定的环境。

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-24
      • 2012-03-23
      • 2019-05-17
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2016-09-29
      • 2023-03-30
      相关资源
      最近更新 更多