docker既可以運作在實體機上也可以運作在虛擬機上;無論是虛擬機還是實體機,都是硬體和基礎設施的一種交付方式,本質上是一個層次的,而容器主要用於解決以軟體為中心的系列問題,在虛擬機器和實體機運行容器都是可行的。
本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
docker運行在實體機或虛擬機器上
docker容器在虛擬機器或實體機上運行都可以
##無論是虛擬機器還是物理機,都是硬體/基礎設施的一種交付方式,本質上是一個層次的;而容器主要要解決以軟體為中心的系列問題嚴格來講,容器和虛擬機並不是一個層次的東西,它就是軟體環境的打包集合。 在虛擬機器中運行容器,已經成為一種實踐中的慣例,例如,AWS的container服務就是只運行在虛擬機器中的。 Docker守護程式可以直接與主作業系統進行通信,為各個Docker容器分配資源;它還可以將容器與主作業系統隔離,並將各個容器互相隔離。 Docker通常用於隔離不同的應用,例如前端,後端以及資料庫。擴充知識:
Docker守護程式可以直接與主作業系統進行通信,為各個Docker容器分配資源;它還可以將容器與主作業系統隔離,並將各個容器互相隔離。 Docker通常用於隔離不同的應用,例如前端,後端以及資料庫。 Docker有著小巧、遷移部署快速、運行高效等特點,但隔離性比伺服器虛擬化差:不同的貨櫃屬於不同的運單(Docker上運行不同的應用實例),相互獨立(隔離) 。但由同一個庫管人員管理(主機作業系統內核),因此透過庫管人員可以看到所有貨櫃的相關資訊(因為共享作業系統內核,因此相關資訊會共用)。 虛擬機器更擅長徹底隔離整個運作環境。例如,雲端服務商通常會採用虛擬機器技術隔離不同的使用者。虛擬機器啟動需要數分鐘,而Docker容器可以在數毫秒內啟動。由於沒有臃腫的作業系統,Docker可以節省大量的磁碟空間以及其他系統資源。 伺服器虛擬化就好比在碼頭上(實體主機及虛擬化層),建立了多個獨立的「小碼頭」—倉庫(虛擬機器)。其擁有完全獨立(隔離)的空間,屬於不同的客戶(虛擬機器所有者)。每個倉庫有各自的庫管人員(目前虛擬機器的作業系統核心),無法管理其它倉庫。不存在資訊共享的情況。 因此,我們需要根據不同的應用場景和需求採用不同的方式,使用Docker技術或使用伺服器虛擬化技術。docker與虛擬機器實作原理比較
如下圖分別是虛擬機器與docker的實作框架。比較虛擬機器實現資源和環境隔離的方案,docker就顯得簡練很多。 docker Engine可以簡單看成Linux的NameSpace、Cgroup、映像管理檔案系統操作的封裝。 docker並沒有像虛擬機器一樣利用一個完全獨立的Guest OS實現環境隔離,它利用的是目前linux核心本身支援的容器方式來實現資源和環境隔離。簡單的說,docker利用namespace實現系統環境的隔離;利用Cgroup實現資源限制;利用映像實現根目錄環境的隔離。
推薦學習:《docker影片教學》
以上是docker運行在實體機器還是虛擬機器上的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Docker在Linux上可以簡化應用部署和管理。 1)Docker是容器化平台,將應用及其依賴打包進輕量、可移植容器。 2)在Linux上,Docker利用cgroups和namespaces實現容器隔離和資源管理。 3)基本用法包括拉取鏡像和運行容器,高級用法如DockerCompose可定義多容器應用。 4)調試常用dockerlogs和dockerexec命令。 5)性能優化可通過多階段構建減小鏡像大小,保持Dockerfile簡潔是最佳實踐。

Docker是一種基於Linux容器技術的工具,用於打包、分發和運行應用,提升應用的可移植性和可擴展性。 1)通過dockerbuild和dockerrun命令,可以構建和運行Docker容器。 2)DockerCompose用於定義和運行多容器的Docker應用,簡化微服務管理。 3)使用多階段構建可以優化鏡像大小,提升應用啟動速度。 4)查看容器日誌是調試容器問題的有效方法。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

退出 Docker 容器的四種方法:容器終端中使用 Ctrl D 快捷鍵容器終端中輸入 exit 命令宿主機終端中使用 docker stop <container_name> 命令宿主機終端中使用 docker kill <container_name> 命令(強制退出)

Docker 中將文件拷貝到外部主機的方法:使用 docker cp 命令:執行 docker cp [選項] <容器路徑> <主機路徑>。使用數據卷:在主機上創建目錄,在創建容器時使用 -v 參數掛載該目錄到容器內,實現文件雙向同步。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),