1. 程式人生 > >Docker進階-資源管理Swarm+Portainer

Docker進階-資源管理Swarm+Portainer

Docker Swarm資源管理

Docker Swarm是Docker官方三劍客專案之一,提供Docker容器叢集服務,是Docker官方對容器雲生態進行支援的核心方案。

使用它,使用者可以將多個Docker主機封裝為單個大型的虛擬Docker主機,快速打造一套容器雲平臺。

注意:Docker1.12.0之後版本,Swarm模組已經內嵌入Docker引擎,成為Docker子命令docker swarm,絕大多使用者已經開始使用Swarm模組,Docker引擎API已經刪除Docker Swarm。

基本概念

Swarm是使用SwarmKit構建的Docker引擎內建(原生)的叢集管理和編排工具。使用Swarm叢集之前需要了解以下幾個概念。

節點

執行Docker的主機可以主動初始化一個Swarm叢集或者加入一個已存在的Swarm叢集,這樣執行Docker的主機就成為一個Swarm叢集的節點(node)。

節點分為管理(manager)節點和工作(worker)節點。

  • 管理節點用於Swarm叢集的管理,docker swarm集合基本只能在管理節點執行。
  • 工作節點是任務執行節點,管理節點將服務(service)下發至工作節點執行。

叢集中管理節點與工作節點的關係

服務和任務

任務(Task)是Swarm中的最小的排程單位,目前來說就是一個單一的容器。
服務(Services)是指一組任務的集合,服務定義了任務的屬性。

服務有兩種模式:

  • replicated services 按照一定規則在各個工作節點上執行指定個數的任務。
  • global services每個工作節點執行一個任務

兩個模式通過docker service create的--mode引數指定

容器、任務、服務的關係

建立Swarm叢集

瞭解Swarm叢集由管理節點和工作節點組成後,我們建立一個包含一個管理節點和兩個工作節點的最小Swarm叢集。

初始化叢集

使用docker swarm init在本地初始化一個Swarm叢集。

docker swarm init --advertise-addr 192.168.1.1

如果你的Docker主機有多個網段,擁有多個IP,必須使用--advertise-addr指定IP。執行docker swarm init命令的節點自動成為管理節點。

注意:使用docker swarm init

增加工作節點

在另外兩臺伺服器上執行上一步建立管理節點時候的輸出的加入swarm叢集的全集

docker swarm join \
--token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \ 
192.168.1.1:2377

檢視叢集

在管理節點使用docker node ls檢視叢集。

docker node ls

部署服務

使用docker service命令來管理Swarm叢集中的服務,該命令只能在管理節點執行。

新建服務

在建立好的Swarm叢集中執行nginx服務

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

現在我們使用瀏覽器,輸入任意節點IP,即可看到nginx預設頁面。

檢視服務

檢視當前Swarm叢集執行的服務

docker service ls

檢視某個服務的詳情

docker service ps nginx

檢視某個服務的日誌

docker service logs nginx

刪除服務

從Swarm叢集中移除某個服務

docker service rm nginx

資源管理

前面利用Docker Swarm快速搭建一個最小叢集,也可以在叢集上部署服務,但是會發現swarm中並沒有提供統一入口檢視節點的資源使用情況。這時我們可以用圖形化管理工具Portainer幫我們管理swarm叢集。

Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器映象網路資料卷的基本操作(包括上傳下載映象、建立容器等操作)、事件日誌顯示、容器控制檯操作、Swarm叢集和服務等集中管理和操作、登陸使用者管理和控制等功能。功能十分全面,基本能滿足小型單位對容器管理的全部需求。

Portainer叢集執行

下載Portainer映象

#查詢當前有哪些Portainer映象
docker search portainer
docker pull portainer/portainer

安裝Portainer(管理節點)

docker run  -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer

Portainer配置

設定管理員帳號密碼

Portainer介面內容

相關推薦

Docker-資源管理Swarm+Portainer

Docker Swarm資源管理 Docker Swarm是Docker官方三劍客專案之一,提供Docker容器叢集服務,是Docker官方對容器雲生態進行支援的核心方案。 使用它,使用者可以將多個Docker主機封裝為單個大型的虛擬Docker主機,快速打造一套容器雲平臺。 注意:Docker1.12.0之

Docker與實戰_帝都客_ pdf掃描版_完整版_資源免費下載

style 公司 改進 ket 實踐 分鐘 應用場景 sel 試用 《Docker進階與實戰》由機械工業出版社出版。PDF下載地址 :http://www.diduker.com/html/4640.html PDF相關截圖 : 編輯推薦作者簡介華為Docker實踐小組

Docker圖形界面管理Portainer

eat 9.png swarm集群 table app tab highlight brush oca 介紹   Portainer是一個開源、輕量級Docker管理用戶界面,基於Docker API,可管理Docker主機或Swarm集群,支持最新版Docker和Swa

[Spark]-- 記憶體管理

前言 Spark 的記憶體管理是記憶體分散式引擎中的一個重要角色,瞭解記憶體管理機制和原理,才能更好地做優化。 內容 1、靜態記憶體管理(Spark 1.6.x版本前的策略) 靜態記憶體管理圖示——堆內 Unroll 的原始碼參考:https://github.co

docker:自定義映象、網路架構(二)

一、製作自定義映象(docker commit) 要求:基於centos映象使用commit建立新的映象檔案。 1、使用映象啟動容器 在該容器基礎上修改yum源 [[email protected] docker_images]# docker run

Ubuntu Server下docker實戰 02: docker配置

這一篇,我們繼續講進階配置。 1. 配置docker在系統啟動時候自動啟動 sudo /lib/systemd/systemd-sysv-install enable docker sudo systemctl enable docker sudo systemctl restart do

java資源

1.java研究組織 (http://www.javaresearch.org/index.jsp)。  該網站有許多文章,涉及java的各個領域和方向。另為還有許多軟體和書籍的下載,使一個java學習的不錯的網站,有空去逛逛,會學到許多的東西。2.灰狐動力(http://ww

Docker:四、Docker Windows Docker IIS 部署

前面的三篇docker 文件大家看的肯定不過癮,自己可能也已經上手一試了。。。不知道有沒有發現問題。。。 哈哈。。。 我來說說我遇到的問題哦 一、windows docker 映象越來越大 預設的docker 映象全部下載到了C盤 C:\ProgramData\Docker 中 ...  ,導致越來

Docker容器--建立映象、資料管理、網路、儲存型別

一、Docker映象建立方法--基於已有映象、基於本地模板; 基於已有映象: 1.準備映象: 2.準備容器: 3.將容器建立成為docker映象檔案: 基於本地模板: 1.下載本地作業系統模板: https://download.open

CUDA第六篇-GPU資源(視訊記憶體、控制代碼等)管理

最近在加速一個影象演算法,符合《CUDA進階第五篇-如何估算出程式的GPU加速比》中的第二種情況,程式由核函式和GPU API實現,但是資源管理特別差,視訊記憶體和控制代碼在程式中使用時才申請。每次函式執行都要申請和釋放一遍,非常耗費時間。優化方案一:C++重構我想到的第一個

Docker Swarm資源管理

Docker Swarm是docker官方三劍客專案之一,提供docker容器叢集服務,是docker官方對容器雲生態進行支

Linux入門第二天——軟件安裝管理(上)

軟件包 軟件安裝 alt dpkg 代碼包 mage 進階 部分 images 一、大綱介紹    二、簡介   軟件包分類:   源碼包:        二進制包:(源碼包編譯後的包,將不能再看到源代碼)   MySQL PhP等開發環境的搭

Ruby操作MongoDB(五)-數據庫管理Administration

collection logger monitroing 通過前面四章的學習,本章我們開始學習Ruby操作MongoDB數據庫中的數據管理Administration數據庫相關 Ruby驅動為數據庫對象執行命令,獲取集合列表,和管理任務提供了多種多樣的幫助。1.1 獲取集合列表List Co

Linux入門第四天(下)——程序管理(補充內容)

bnu 部分 localhost top 現在 exe rdquo init fec 1.PID   觸發任何一個事件時,系統都會將他定義成為一個程序,並且給予這個程序一個 ID ,稱為 PID,同時依據啟發這個程序的使用者與相關屬性關系,給予這個 PID 一組有效的權限

Linux入門第四天——服務管理

啟動方式 都是 重新 包括 load running cron 服務類 電池 以下均基於CentOS6.3,其中有部分命令已經過時,在CentOS7中不再使用,請註意   【更新】:CentOS7改變: CentOS 7.0中一個最主要的改變,就是切換到了syste

Linux入門第六天——登錄文件管理

軟件 進行 linu str 更改 systemd wtmp tmp mes 一、概述   1.什麽是登錄文件 簡單的說,就是記錄系統活動信息的幾個文件, 例如:何時、何地(來源 IP)、何人 (什麽服務名稱)、做了什麽動作 (訊息登錄啰)。 換句話說就是:記

Docker使用 Supervisor 來管理

控制 rip div post 我們 config 很多 -a 腳本 Docker 容器在啟動的時候開啟單個進程,比如,一個 ssh 或者 apache 的 daemon 服務。但我們經常需要在一個機器上開啟多個服務,這可以有很多方法,最簡單的就是把多個啟動命令放到一個

docker:輕量級圖形頁面管理Portainer

Portainer docker 圖形化管理 docker portainer 1.介紹 docker 圖形化管理提供了很多工具,有Portainer、Docker UI、Shipyard等等,本文主要介紹Portainer。 ?Portainer是一個開源、輕量級Docker管理用戶界面,基

Docker集群管理Swarm數據持久化

重啟 3.1 重要 格式 dock 啟動 eat null .com 一、前言   和docker容器一樣,Swarm集群中運行的服務也能夠做數據持久化。我們可以通過volume、bind和nfs等方式來實現swarm集群應用數據的持久化。其實和docker數據持久化的形

虛擬化管理

計算 virt multipl 虛擬化 chain virsh 特性 文件名 line libvirt工具棧詳解 支持的虛擬化技術   KVM   Xen   LXC   VMware   Qemu   OpenVZ libvirt組件 常用libvirt工具