docker swarm是什麼
swarm是Docker官方提供的叢集管理工具,其主要功能是把若干台Docker主機抽象化為一個整體,並且透過一個入口統一管理這些Docker主機上的各種Docker資源。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Swarm是Docker公司推出的用來管理docker叢集的平台,幾乎全部用GO語言來完成的開發的,程式碼開源在https://github.com/docker/swarm, 它是將一群Docker宿主機變成單一的虛擬主機,Swarm使用標準的Docker API介面作為其前端的存取入口,換言之,各種形式的DockerClient(compose,docker-py等)均可直接與Swarm通信,甚至Docker本身都可以很容易的與Swarm集成,這大大方便了用戶將原本基於單節點的系統移植到Swarm上,同時Swarm內置了對Docker網絡插件的支持,用戶也很容易的部署跨主機的容器集群服務。
Swarm 和 Kubernetes 比較類似,但是更輕,具有的功能也比 kubernetes 更少一些。
Docker Swarm 包含兩個面向:一個企業級的 Docker 安全集群,以及一個微服務應用程式編排引擎。
叢集方面,Swarm 將一個或多個 Docker 節點組織起來,使得使用者能夠以叢集方式管理它們。
Swarm 預設內建加密的分散式叢集儲存(encrypted distributed cluster store)、加密網路(Encrypted Network)、公用TLS(Mutual TLS)、安全叢集存取權杖Secure Cluster Join Token)以及一套簡化數位憑證管理的PKI(Public Key Infrastructure)。我們可以自如地新增或刪除節點。
編排方面,Swarm 提供了一套豐富的 API 使得部署和管理複雜的微服務應用變得易如反掌。透過將應用程式定義在聲明式設定檔中,就可以使用原生的 Docker 指令完成部署。
此外,甚至可以執行滾動升級、回滾以及擴縮容操作,同樣基於簡單的命令即可完成。
以往,Docker Swarm 是一個基於 Docker 引擎之上的獨立產品。自 Docker 1.12 版本之後,它已經完全整合在 Docker 引擎中,執行一條指令即可啟用。到 2018 年,除了原生 Swarm 應用,它還可以部署和管理 Kubernetes 應用。
Docker Swarm 初步介紹
從叢集角度來說,一個 Swarm 由一個或多個 Docker 節點組成。這些節點可以是實體伺服器、虛擬機器、樹莓派(Raspberry Pi)或雲端實例。唯一的前提就是要求所有節點透過可靠的網路連接。
節點會被設定為管理節點(Manager)或工作節點(Worker)。管理節點負責叢集控制面(Control Plane),進行監控叢集狀態、分發任務至工作節點等操作。工作節點接收來自管理節點的任務並執行。
Swarm 的設定和狀態資訊保存在一套位於所有管理節點上的分散式 etcd 資料庫中。該資料庫運行於記憶體中,並保持資料的最新狀態。關於這個資料庫最棒的是,它幾乎不需要任何配置,作為 Swarm 的一部分被安裝,無須管理。
關於叢集管理,最大的挑戰在於保證其安全性。搭建 Swarm 叢集時將不可避免地使用 TLS,因為它被 Swarm 緊密整合。
在安全意識日盛的今天,這樣的工具值得大力推廣。 Swarm 使用 TLS 進行通訊加密、節點認證和角色授權。自動密鑰輪換(Automatic Key Rotation)更是錦上添花!其在後台默默進行,使用者甚至感知不到此功能的存在。
關於應用程式編排,Swarm 中的最小調度單元是服務。它是隨 Swarm 引入的,在 API 中是一個新的物件元素,它基於容器封裝了一些高級特性,是一個更高層次的概念。當容器被封裝在一個服務中時,我們稱之為一個任務或一個副本,服務中增加了諸如擴縮容、滾動升級以及簡單回滾等特性。
綜上所述,從概括性的視角來看 Swarm,如下圖所示。
推薦學習:《docker影片教學》
以上是docker swarm是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

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

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

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

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

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

重啟 Docker 容器的方法:獲取容器 ID(docker ps);停止容器(docker stop <container_id>);啟動容器(docker start <container_id>);驗證重啟成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(參考 Docker 文檔)。

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

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

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

查看 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
