一千萬個為什麽

搜索

chroot和Docker之間的區別



我不明白docker和chroot的區別。是的,它在包裝註冊表方面很不錯。但不知何故,我覺得它只是額外的鐘聲和哨聲。

我知道我錯過了一些東西。如果知道它們是如何不同以及如果chroot可以做類似的事情就需要docker,那將會很棒。

我找不到這個 Chroot Vs Docker

轉載註明原文: chroot和Docker之間的區別

一共有 2 個回答:

那麽,額外的鈴聲和哨聲被稱為進程隔離,一個容器從它的自定義命名空間主機內核,這意味著容器中的程序不能嘗試讀取內核內存或者不能容忍更多的內存。

它也隔離網絡堆棧,因此兩個進程可以在端口8080上偵聽例如, 您必須在主機級別處理路由,這裏沒有什麽魔法,但是這樣可以在一個地方處理路由,並避免修改流程配置以偵聽空閑端口。

其次,chroot仍然是可讀/寫的,任何更改都是永久的,每次啟動容器時使用 aufs 的docker容器將從幹凈的文件系統啟動(如果停止/啟動它,IIRC會保留更改) 。

一個容器可以被認為是進程命名空間+ chroot,但實際情況稍微復雜一點。

是的,除了 chroot 之外,還有其他更多的事情,以至於它們幾乎沒有共同之處。

  • A standardized script file format including semantics relating to the task a hand
  • Images (including anonymous in-between images), caching, naming, downloading etc. including powerful management (docker image prune ...)
  • Containers (including their own temporary file systems, naming, being able to docker exec into them etc.)
  • Process management (docker container ...)
  • Networking with just a simple option, including intra-docker-container-networking etc.
  • Volumes (including special managed volumes)
  • docker-compose or swarm as low-profile upgrades to much more.
  • The large zoo of other solutions based on dockerized containers (OpenShift etc.).