docker容器和jvm這類執行時虛擬機器有何本質差別?

時間 2021-05-30 07:55:26

1樓:

奇怪的問題,下意識的以為是問 Docker 的容器和虛擬機器(VMware/VBox)有什麼本質差別,沒想到問的是 JVM。

沒看明白,是什麼讓你將 Docker 和 JVM 扯上關係了?因為它們毫無聯絡啊……甚至說風馬牛不相及都不過分,何來的需要求證“本質差別”之說呢?

建議問題改改,要麼問 Docker 和虛擬機器有什麼區別,或者問 JVM 和 VMware 有什麼區別。

JVM 是為了讓 JVM 規範位元組碼能執行於不同底層,而設計的統一抽象層,是“程式虛擬機器”,而 VMware 這類“系統虛擬機器”是為了模擬一套完整的硬體環境,其功能和目的都不同。並且也有某些執行時不叫 VM 的,例如 Erlang 的 BEAM 名稱中 AM 的含義實際上是“抽象機”而不是“虛擬機器”。

Docker 可以理解為 Linux 中的 chroot 或者 Windows 中安全軟體常見的 Sandbox 功能,核心是隔離。它無法讓 Linux 本地程式執行在 WIndows 上。

把 JVM 和 Docker 聯絡上了,估計是對雙方的理解都產生了很大的偏差。

容器引擎除了 Docker 之外還有哪些?

podman存在類似docker禁用華為這種風險嗎?公司要求不能用docker部署微服務,可以用podman嗎 這個裡面有介紹 CNCF Cloud Native Interactive Landscape cncf 官方彙總的全部runtime。目前主推的是 containerd cri o rk...

docker容器啟動後自動退出什麼原因?

佰邦達科技 容器停止就說明容器內的主程序結束了。在啟動容器時,如果使用者是將容器放在後臺執行的,並且使用service start命令作為容器啟動命令,就會產生這個問題,這個命令執行成功後就會退出,緊接著容器也會自動退出。因為容器的生存週期是直接和啟動容器的命令生命週期一致的,一旦主程序退出,整個容...

Docker容器如何實現分散式微服務?

晴天 分散式微服務要求微服務本身就必須得是分散式的,不能是有狀態的,需要共享的資料和鎖用資料庫,快取,訊息對接去實現。實現了分散式服務之後,可以使用k8s叢集,建立deployment,然後在deployment的定義模板yaml裡填寫映象的資訊,映象的啟動命令等等,指定pod的數量。成功啟動以後k...

一個docker容器中執行多個服務還是弄一堆docker容器執行?

Hat Joker 通常是一臺虛擬機器安裝一個Docker,也可以多臺機器安裝多個Docker,組成Docker叢集。每個Docker裡面包含了諸多映象,執行映象產生容器,一個映象可以執行多個容器,每個容器運營一個微服務。 創帆雲 每個docker建議是單獨的資源和服務 當你docker玩得久之後,...

Docker容器在執行時訪問的檔案路徑是什麼

軟體園的豬 Docker容器本質上不是一個虛擬機器,但是使用的時候你可以基本上把它當做一個虛擬機器。容器程序訪問的是這個虛擬機器內的檔案,不是宿主機內的檔案。Docker容器執行結束就銷燬了,所以要把需要持久儲存的檔案儲存到宿主機上。使用 volume指令可以把宿主機目錄對映到虛擬機器內,交給容器程...