我是 Docker 的新手,對容器化的概念感到困惑。我想知道 Docker 容器和 Binder 專案之間的主要區別。這是谷歌搜索的定義:
- Docker 容器是運行應用程式的標準化封裝環境。
- Binder 或“Binder 就緒存盤庫”是一個代碼存盤庫,其中包含要運行的代碼和內容,以及運行它所需的環境組態檔。
誰能詳細說明一下?謝謝!
uj5u.com熱心網友回復:
你的困惑是可以理解的。Docker 本身有很多需要遵循,然后添加 Binder,如果你在幕后看,它會變得更加復雜。
需要注意的一大要點是,典型用戶對 MyBinder.org 的大部分使用旨在消除這些用戶學習 Docker、Dockerfile 語法和容器概念等的需要。您包含的用于使存盤庫“準備好 Binder”的組態檔是為了更輕松地制作結果容器,而無需使用 dockerfile 語法撰寫 dockerfile。您可以或多或少地簡單地列出您需要的包,requirements.txt或者environment.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 并根據需要使用生成的映像生成正在運行的容器。
構建的影像指定您從 MyBinder.org 獲得的 JupyterHub 上的環境支持它。實際上,您從 MyBinder.org 獲得的會話是在 Kubernetes 集群上運行的正在運行的 docker 容器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/331730.html
