docker不是容器;容器是打包程式碼及其所有依賴的軟體的標準單元,用於開發、交付和部署,使應用程式可以從一個環境快速可靠地運行到另一個環境,而docker則是容器技術的一種實現,是一個開源的應用容器引擎,是用來管理容器的。
本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
docker不是容器
Docker和容器的關係
現在一談到容器,第一時間就會想到Docker,但是容器並不等同於Docker,Docker只是容器技術的一種實現,用來管理容器,就像VMware是虛擬機器的一種實作一樣,除了Docker,還有LXC/LXD 、rkt等容器技術實現,只是Docker最為出名。
什麼是容器
Docker官方對容器的解釋,一句話概括,容器(Container)就是將軟體打包成標準化單元,以用於開發、交付和部署。容器是打包程式碼及其所有依賴的軟體的標準單元,使應用程式可以從一個環境快速可靠地運行到另一個環境。容器鏡像是輕量的、可執行的獨立軟體包 ,包含軟體運作所需的所有內容:程式碼、執行時間環境、系統工具、系統程式庫和設定。容器化軟體適用於基於Linux和Windows的應用,在任何環境中都能夠一致地運作。容器賦予了軟體獨立性,將其與環境隔離開來,確保在例如開發和預演環境這種存在差異的環境中統一運作。
容器也是一種用於打包應用程式(已編譯)程式碼以及執行時間所需依賴的技術。運行的每個容器可以重複,透過包含依賴項實現標準化意味著在任何環境中運行容器都可以得到相同的行為。容器將應用程式與主機基礎結構分離,使其在不同的雲端和作業系統環境部署更加容易。容器是不可變的,無法變更已執行容器的程式碼。如果一個容器化應用程式需要更改,則需要建立一個包含更改的新容器,從更新的鏡像從新建立容器。
容器技術實質上是對系統資源的隔離和控制,使容器程序運行於屬於自己的獨立的命名空間(namespace)。容器可以擁有自己的檔案系統、網路配置、進程空間等,容器內的進程是運作在一個隔離的環境裡,使用起來就好像是在一個獨立於宿主的系統下操作一樣,也使得容器可以很方便的在任何地方運行。
容器的優點
容器的主要優點概括如下:
使用簡單高效:與虛擬機器鏡像相比,容器鏡像更易用、更有效率。容器體積小啟動快,不需要與外部的基礎架構環境綁定,完美解決從開發到生產環境的一致性問題。
監控與管理:容器比虛擬機器更透明,有助於監控與管理。尤其是容器流程的生命週期由基礎架構管理,而不是被行程管理器隱藏在容器內部。最後,每個應用程式都用容器封裝,管理容器部署就等於管理應用程式部署。
持續整合與部署:容器消除環境差異,保證應用生命週期環境一致性與標準化。開發人員使用鏡像實現標準開發環境構建,開發完成後封裝完整環境和應用鏡像,測試運維人員可以直接部署鏡像進行測試和發布,簡化了持續整合、測試和發布過程。
環境標準化與版本控制:基於容器提供的環境一致性和標準化,可以對容器鏡像進行版本控制,即能夠對整個運行環境進行版本控制,提供可靠與頻繁的容器鏡像建置、部署和快速簡便的回滾。
資源高效利用與隔離:容器沒有管理程式的額外開銷,與底層共享作業系統,效能優良,系統負載低,在相同條件可以運行更多應用實例,可以充分利用系統資源。容器還擁有不錯的資源隔離與控制能力,可以精確地分配系統資源,確保應用之間互不影響。
可觀測:不僅顯示作業系統的資訊和度量,也顯示應用本身的資訊和度量。
雲端和作業系統分發可移植性:可運行在Ubuntu、RHEL、 CoreOS、實體機、GKE以及其他任何地方。
以應用程式為中心:從傳統的硬體部署作業系統提升到作業系統部署應用程式。
鬆散耦合、分散式、彈性伸縮和微服務:應用程式被分成更小,更獨立的模組,並且可以動態管理和部署,而不是運行在專用設備上的大型單體程式。
什麼是Docker
#Docker毫無疑問是從眾多容器技術中脫穎而出的佼佼者,至於Docker具體是什麼,透過下面幾點總結:
Docker是一個開源容器項目,程式碼在GitHub維護,遵循Apache 2.0協議並已加入Linux基金會,受到主流作業系統以及雲端服務供應商支持,成立推動了開放容器聯盟(OCI)。
Docker使用Google公司的Go語言進行開發實現,基於Linux核心的命名空間(namespace) 、控制組(cgroup)以及OverlayFS類別的Union FS等技術,對進程進行封裝隔離,屬於作業系統層面的虛擬化技術。由於隔離的進程獨立於宿主和其它的隔離的進程,因此也稱之為容器。
Docker最初是基於Linux容器(LXC)實現,後來使用自己開發的libcontainer取代了LXC,然後進一步演化為使用runc和containerd。
Docker提供了高效、敏捷和輕量級的容器方案,可在容器內快速自動化部署應用,透過作業系統核心技術為容器提供資源隔離與安全保障,大大簡化了容器建立與維護,並支援部署到本地環境和多種雲端平台。換句話說,Docker為應用程式開發、運行和部署提供了一站式解決方案。
runc是一個Linux命令列工具,用於根據OCI容器運行時規範建立和運行容器。
containerd是一個守護程序,它管理容器生命週期,提供了在一個節點上執行容器和管理映像的最小功能集。
Docker的優勢
作為一種新興的虛擬化方式,Docker跟傳統的虛擬化方式相比有著眾多的優勢。具體總結如下:
更有效率的利用系統資源:容器不需要進行硬體虛擬以及運行完整作業系統等額外開銷,Docker對系統資源的利用率更高,需求量更小,可以實現更高的性能。一個相同配置的主機,使用容器可以比虛擬機器運行更多數量的應用。
更快速的啟動時間:Docker容器應用程式可以做到秒數、甚至毫秒的啟動時間。大大的節約了開發、測試、部署的時間。
一致的運作環境:Docker映像提供了除核心外完整的執行時間環境,確保了應用程式運行環境一致性,因此不會再出現同樣的程式碼換個環境就無法運行這類問題。
持續交付與部署:使用Docker可以透過客製化應用映像來實現持續整合、持續交付、部署。開發人員透過Dockerfile建置映像並結合持續整合系統進行整合測試,維運人員可以直接在生產環境中快速部署該映像,甚至結合持續部署系統進行自動部署。
更輕鬆的遷移:Docker確保了執行環境的一致性,使得應用程式在不同平台之間的遷移更加容易,而不用擔心運行環境的變化導致應用程式無法正常運行的情況。
更輕鬆的維護和擴展:Docker使用的分層儲存以及映像的技術,使得應用重複部分的複用更為容易,也使得應用程式的維護更新更加簡單,基於基礎鏡像進一步擴展鏡像也變得非常簡單。 Docker也維護了一大批高品質官方鏡像,進一步降低了應用服務的鏡像製作成本。
良好的隔離:Docker為容器提供了可靠的資源隔離與安全保障,使容器精確地分配系統資源,保證應用之間互不影響。
彈性伸縮:善於處理集中爆發的伺服器使用壓力,動態的管理應用。
推薦學習:《docker影片教學》
以上是docker是容器嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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 參數掛載該目錄到容器內,實現文件雙向同步。

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。