linux 之centos7安裝kafka;;;;;待補充,未完成
阿新 • • 發佈:2022-05-17
Docker是什麼
Docker 是一個用於開發、釋出和執行應用程式的開放平臺。 Docker 能夠將應用程式與基礎架構分離,可以像管理應用程式一樣管理基礎設施。Docker 提供了在容器的隔離環境中打包和執行應用程式的能力。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上。
Docker架構
Docker 使用客戶端-伺服器架構。 Docker 客戶端與 Docker 守護程序對話,後者負責構建、執行和分發 Docker 容器的繁重工作。 Docker 客戶端和守護程式使用 REST API,通過 UNIX 套接字或網路介面進行通訊。另一個 Docker 客戶端是 Docker Compose,它允許使用由一組容器組成的應用程式。
- Docker daemon: Docker 守護程序 (dockerd) 監聽 Docker API 請求並管理 Docker 物件,例如映象、容器、網路和卷。守護程序還可以與其他守護程序通訊以管理 Docker 服務
- Docker Client: Docker 客戶端(docker)是使用者與 Docker 互動的主要方式。當你使用 docker run 等命令時,客戶端會將這些命令傳送給 dockerd,dockerd 會執行這些命令。 docker 命令使用 Docker API。 Docker 客戶端可以與多個守護程序通訊.
- Docker Desktop: Docker Desktop 包括 Docker 守護程式 (dockerd)、Docker 客戶端 (docker)、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper
- Docker registries: 用來儲存各種打包好的軟體映象;倉庫分為公有倉庫和私有倉庫
- Images: 軟體打包好的映象;放在docker倉庫中
- Containers: 容器是一個映象的可執行例項。你可以使用Docker API或CLI來建立、啟動、停止、移動或刪除一個容器。你可以將一個容器連線到一個或多個網路上,為其附加儲存,甚至可以根據其當前狀態建立一個新的映象
Docker底層技術
Docker是用Go程式語言編寫的,並利用了Linux核心的一些特性來提供其功能。Docker使用一種叫做名稱空間的技術來提供稱為容器的隔離工作空間。當你執行一個容器時,Docker為該容器建立一組名稱空間。這些名稱空間提供了一個隔離層。容器的每個方面都在一個單獨的名稱空間中執行,其訪問僅限於該名稱空間。
Docker與虛擬機器比較
特性 | 容器 | 虛擬機器 |
---|---|---|
啟動速度 | 秒級 | 分鐘級 |
效能 | 接近原生 | 較弱 |
記憶體代價 | 很小 | 較多 |
硬碟使用空間 | 一般為MB | 一般為GB |
隔離性 | 安全隔離 | 完全隔離 |