簡體   English   中英

如何以及為何將OS用作Docker上的容器

[英]How and why OS being used as containers on docker

我剛剛開始學習碼頭工人集裝箱 對我來說,我可以將應用程序及其所有依賴項容器化,然后將其部署在docker引擎上並運行。 但是我很困惑,像UBUNTU這樣的操作系統是如何作為容器部署在docker上的? 因為我了解的基本概念是,Docker容器對應用程序沒有或只有最小的操作系統依賴性 那么為什么OS也被用作容器? 操作系統是否被視為docker上的應用程序? 還是它們有其​​他用途,它們只是為應用程序提供最小的依賴關系? 如果有人可以解釋這個概念,那就太好了。

Linux系統包含Linux內核以及位於其之上的一組程序/實用程序,它們定義了系統的整體行為和外觀。 與虛擬化技術相比,使Docker輕巧的是,它與主機OS 共享內核 但並非其余程序。

您可能不想在純內核上部署您的應用程序-您需要POSIX api以及shell和包管理器。 所有這些東西都隨Ubuntu或您喜歡的任何發行版一起提供。 因此,對您的應用進行容器化時,您選擇最合適的Linux發行版並使用適當的基本docker映像。 通常,您會考慮大小,默認程序包管理器和滾動/穩定部署規則。

實際上,您可以使用FROM scratch指令使用LFS或最少的代碼來創建映像,但是我懷疑是否值得花時間。

因此,回到您的問題:

但是我很困惑,像UBUNTU這樣的操作系統是如何作為容器部署在docker上的?

剛掛載為tar.gz rootfs

那么為什么OS也被用作容器?

讓您擁有包管理器,glibc和其他功能。 您喜歡RUN apt-get install -y whatever ,不是嗎?

操作系統是否被視為docker上的應用程序?

不,Docker中沒有應用程序概念。 只有主進程才能使容器保持活動狀態。 並且操作系統不被視為主要過程。

Docker將提供最低的os最低版本來部署您的應用程序。 就像您使用alpine(docker中最小的映像)一樣,其大小約為5 MB。 您必須手動安裝特定於您的應用程序的其他組件。 Docker將為您提供創建容器的平台。 您希望在容器內使用什么。 您可以使用alpine或任何高級操作系統(如ubuntu),然后即可部署應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM