Docker-compose容器編排與容器監控

一、Docker-compose

1、概念:

Docker-Compose 是 Docker 官方的開源項目,負責實現對Docker容器集群的快速編排。

2、作用:

Docker-Compose可以管理多個Docker容器組成一個應用。需要定義一個yaml格式的配置文件 docker-compose.yml,配置好多個容器之間的調用關系,然后只需要一個命令就能同時啟動/關閉這些容器。

3、compose核心概念:

① 一文件:docker-compose.yml

② 兩要素:

項目 (project):由一組關聯的容器組成的一個完整業務單元;

服務 (service):一個項目中的某一個容器實例 。

4、compose 使用步驟:

① 編寫 Dockerfile 定義各個應用容器,構建出對應的鏡像文件;

② 使用 docker-compose.yml,定義一個完整的業務單元,安排好整體應用中的各個容器服務;

③ 執行 docker-compose up 命令,創建并運行整個應用程序,完成一鍵部署上線。

5、compose示例:

compose模版:https://docker_practice.gitee.io/compose/compose_file.html

(1) 創建一個項目:

mkdir /root/ems/ (以ems目錄作為項目名)

(2) 在ems目錄里創建一個docker-compose.yml文件:

① version:

每個模版文件需要寫上version版本號,代表所使用的docker-compose的項目版本。

● 版本號的選擇與docker引擎有關:

官方提供的compose版本號與docker引擎的對應關系:

② services:

在模版文件里定義需要啟動的容器:

● 啟動 tomcat:

若要啟動另一個tomcat,則要再寫一組服務:

● 啟動 redis:

● 啟動 mysql:

(3) 啟動docker-compose服務:

docker compose up

這個命令必須在docker-compose.yml配置文件目錄下執行

● 查看服務:

tomcat:

redis:

mysql:

● 停止服務:

附:完整docker-compose.yml

#代表使用的docker-compose項目版本號
version: "3.8"services:tomcat1:            #tomcat服務名(名稱唯一)image: tomcat:8.0   #所使用的鏡像ports:              #宿主機8080端口映射容器8080端口- 8080:8080tomcat2:image: tomcat:8.0ports:- 8081:8080redis1:image: redis:6.0.8ports:- 6379:6379mysql:image: mysql:5.7ports:- 3306:3306environment:  #給當前容器啟動指定環境 類似docker run -e MYSQL_ROOT_PASSWORD=123456- "MYSQL_ROOT_PASSWORD=123456" volumes:   #給當前容器指定數據卷 類似docker run -v- /root/mysqldata1:/var/lib/mysql

(4) 在IDEA上創建docker-compose.yml:

遠程連接docker服務器,創建一個docker-compose.yml

編寫docker-compose.yml,可根據提示信息自動補齊,編寫完成后點擊紅框所示圖標,即可完成上傳

宿主機上啟動docker-compose服務:

6、docker-compose 常用命令:

(1) up:

docker compose up [options] [SERVICE...]

該命令會嘗試自動完成包括構建鏡像,創建服務,啟動服務,并關聯服務相關容器的一系列操作。

docker compose up:啟動的容器都在前臺,控制臺將會同時打印所有容器的輸出信息,可以很方便進行調試。

docker compose up -d:在后臺啟動并運行所有的容器。

(2) down:

docker compose down:關閉up命令所啟動的服務容器,并移除網絡。

(3) exec:

docker compose exec 服務id:進入某個服務容器。

(4) restart:

docker compose restart [options] [SERVICE...]:重啟項目中的服務

-t, --timeout TIMEOUT?指定重啟前停止容器的超時(默認為 10 秒)。

(5) rm:

docker compose rm [options] [SERVICE...]

刪除所有停止狀態的服務容器,先執行?docker compose stop?命令停止容器。

-f 強制直接刪除,包括非停止狀態的容器。

-v?刪除容器所掛載的數據卷。

(6) top:

docker compose top

查看項目中所有服務容器運行進程,或某個指定id服務容器的進程。

(7) logs:

docker compose logs [options] [SERVICE...]

查看整個項目或某個id服務容器的日志。

7、docker-compose 模版文件常用指令:

https://vuepress.mirror.docker-practice.com/compose/compose_file/#

二、可視化工具Portainer

1、簡介:

Portainer是一款輕量級的應用,提供圖形化界面,用于管理Docker環境。

官網:Portainer: Container Management Software for Kubernetes and Docker

2、安裝:

(1) docker 命令安裝:

docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.13.0-alpine

(2) 登錄:

① 訪問地址:服務器ip:9000;

② 設置 admin 密碼;

類似 docker system df:

3、Portainer創建容器:

三、容器監控CIG

1、簡介:

CAdvisor (監控收集) + InfluxDB (存儲數據) + Granfana (展示圖表),合稱CIG

(1) CAdvisor:

CAdvisor是一個容器資源監控工具,包括容器的內存、CPU、網絡IO、磁盤IO等監控,提供了一個Web頁面用于查看容器的實時運行狀態。

CAdvisor默認存儲2分鐘的數據,而且只針對單物理機。不過CAdvisor提供了很多數據集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch等集成,可以加上對應配置將監控數據發往這些數據庫存儲起來。

(2) InfluxDB:

為了持久化存儲數據和統一收集展示監控數據,需要將數據存儲到InfluxDB中。InfluxDB是一個時序數據庫,專門用于存儲時序相關數據,很適合存儲 CAdvisor 的數據。

(3) Granfana:

Grafana是一個開源的數據監控分析可視化平臺,支持多種數據源配置和豐富的插件及模板功能,支持圖表權限控制和報警。

2、docker-compose 部署 CIG:

(1) 新建docker-compose.yml:

① 新建目錄:mkdir /mydocker/cig -p

② 編寫docker-compose.yml:

services:influxdb:image: tutum/influxdb:0.9restart: alwaysenvironment:- PRE_CREATE_DB=cadvisorports:- "8083:8083"        - "8086:8086"            volumes:- ./data/influxdb:/datacadvisor:image: google/cadvisor:v0.32.0links:- influxdb:influxsrvcommand:- -storage_driver=influxdb- -storage_driver_db=cadvisor- -storage_driver_host=influxsrv:8086restart: alwaysports:- "8080:8080"volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rografana:image: grafana/grafana:8.5.2user: '104'restart: alwayslinks:- influxdb:influxsrvports:- "3000:3000"volumes:- grafana_data:/var/lib/grafanaenvironment:- HTTP_USER=admin- HTTP_PASS=admin- INFLUXDB_HOST=influxsrv- INFLUXDB_PORT=8086

docker compose config -q:檢查.yml文件語法

(2) 啟動docker-compose文件,并檢查服務是否啟動:

3、測試:

(1) 瀏覽CAdvisor收集服務:

(2) 瀏覽 influxdb 存儲服務:

(3) 瀏覽 grafana 展現服務:

初始用戶名:admin ;密碼:admin

● grafana 配置:

① 配置數據源:

② 配置面板panel:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS邏輯組合偽類

CSS 的邏輯組合偽類有 4 種,分別是::not()、:is()、:where()和:has()。 否定偽類:not() 否定偽類,是在元素與括號里面的參數不匹配的時候,就會對這個偽類進行匹配。比如::not(span):{color:red},這就會匹…

SEO優化是什么,如何進行SEO優化

SEO(Search Engine Optimization)是指通過對網站進行優化,提高其在搜索引擎中的排名,從而增加有機流量和改善用戶體驗的一系列技術和方法。 進行SEO優化可以幫助網站獲得更多的有機搜索流量,并提升網站的曝光度和可見…

Fiddler抓包模擬器(雷電模擬器)

Fiddler設置 List item 打開fiddler,的options 點擊OK,重啟fiddler 模擬器 更改網絡設置 IP可以在電腦上終端上查看 然后在模擬器瀏覽器中輸入IP:端口 安裝證書

ssl什么是公鑰和私鑰?

公鑰(Public Key)與私鑰(Private Key)是通過加密算法得到的一個密鑰對(即一個公鑰和一個私鑰,也就是非對稱加密方式)。公鑰可對會話進行加密、驗證數字簽名,只有使用對應的私鑰才能解…

K8s 入門指南(一):單節點集群環境搭建

前言 官方文檔:Kubernetes 文檔 | Kubernetes 系統配置 CentOS 7.9(2 核 2 G) 本文為 k8s 入門指南專欄,將會使用 kubeadm 搭建單節點 k8s 集群,詳細講解環境搭建部署的細節,專欄后面章節會以實戰代碼介紹…

P1001 A+B Problem題解

對于編程語言語法的學習最好的辦法就是在題目中學習&#xff0c;現在來開啟我們的學習之旅。 題目 輸入兩個整數a,b&#xff0c;輸出它們的和&#xff08;∣a∣,∣b∣≤109&#xff09;。 輸入輸出樣例 輸入 20 30 輸出 50 代碼 #include<iostream> using names…

點擊登錄按鈕二次才跳轉到首頁

1.問題描述 點擊登錄按鈕&#xff0c;調取接口,成功后獲取數據并跳轉到首頁&#xff0c;都沒有問題&#xff0c;也沒有報錯&#xff0c;就是點擊第一次不跳轉&#xff0c;第二次才能跳轉&#xff0c;這是代碼 this.$message({message: "登陸成功",type: "succ…

Vue3+ts----根據配置項,動態生成表單

這里使用的UI框架是ElementPlus&#xff0c;更換其他組件直接更換constant.ts中的type配置和對應的Form組件即可. 大家可以npm install elementplus_dy_form來體驗。 思路&#xff1a; 1.這里需要使用h函數方便控制要渲染的表單 2.傳遞type作為組件或html元素進行渲染&#xff…

PHP基礎 - 輸入輸出

在 PHP 中,有多種方法可以用來輸出內容。下面是其中的幾種: 1、echo: 這是最常見的輸出語句之一,可以輸出一個或多個字符串。它是一個語言結構,可以省略括號。使用示例如下: <?php // 使用 echo 語句輸出一個字符串 echo "Hello, world!\n";// 可以使用…

虛擬儀器的外部接口設計

虛擬儀器的外部接口設計需要考慮多個因素。以下是一些可能涉及的方面&#xff1a; 接口類型&#xff1a;根據實際需要&#xff0c;選擇不同類型的接口。例如&#xff0c;計算機內部插卡式接口有isa接口和pci接口&#xff0c;適用于中小型測試系統。計算機外部通用總線接口有增…

P1035 [NOIP2002 普及組] 級數求和題解

題目 已知&#xff1a;.顯然對于任意一個整數 k&#xff0c;當 n 足夠大的時候,Sn?>k。 現給出一個整數k&#xff0c;要求計算出一個最小的n&#xff0c;使得Sn?>k。 輸入輸出樣例 輸入 1 輸出 2 代碼 #include<iostream> using namespace std; int mai…

周周愛學習之Redis重點總結

redis重點總結 在正常的業務流程中&#xff0c;用戶發送請求&#xff0c;然后到緩存中查詢數據。如果緩存中不存在數據的話&#xff0c;就會去數據庫查詢數據。數據庫中有的話&#xff0c;就會更新緩存然后返回數據&#xff0c;數據庫中也沒有的話就會給用戶返回一個空。 1.緩…

AIGC創作系統ChatGPT網站源碼,Midjourney繪畫,GPT聯網提問/即將支持TSS語音對話功能

一、AI創作系統 SparkAi創作系統是基于ChatGPT進行開發的Ai智能問答系統和Midjourney繪畫系統&#xff0c;支持OpenAI-GPT全模型國內AI全模型。本期針對源碼系統整體測試下來非常完美&#xff0c;可以說SparkAi是目前國內一款的ChatGPT對接OpenAI軟件系統。那么如何搭建部署AI…

leetcode 面試題 02.02. 返回倒數第k個節點

提建議就是&#xff0c;有些題還是有聯系的&#xff0c;建議就收看完 876.鏈表的中間節點&#xff08;http://t.csdnimg.cn/7axLa&#xff09;&#xff0c;再將這一題聯系起來 面試題 02.02. 返回倒數第k個節點 題目&#xff1a; 實現一種算法&#xff0c;找出單向鏈表中倒數第…

這些接口自動化測試工具如果不知道,就真out了!

一、Postman Postman是一款廣受歡迎的API測試工具&#xff0c;除了手動發送HTTP請求的基本功能&#xff0c;它還提供了自動化測試和腳本測試的功能&#xff0c;非常適合進行HTTP接口的自動化測試。 二、Rest-Assured Rest-Assured是一個Java庫&#xff0c;專為REST服務的測試…

java中守護線程的特點是什么?

Java 中守護線程&#xff08;Daemon Thread&#xff09;的特點如下&#xff1a; 隨主線程結束而結束&#xff1a; 守護線程是在后臺運行的線程&#xff0c;當所有的用戶線程都執行完畢后&#xff0c;即主線程結束&#xff0c;守護線程會隨之被終止。它不會阻止 JVM 退出。 不執…

C++異常剖析

什么是異常&#xff1f; 在程序運行的過程中&#xff0c;我們不可能保證我們的程序百分百不出現異常和錯誤&#xff0c;那么出現異常時該怎么報錯&#xff0c;讓我們知道是哪個地方錯誤了呢? C中就提供了異常處理的機制。 一、異常處理的關鍵字 &#xff08;1&#…

聯想電腦重裝系統Win10步驟和詳細教程

聯想電腦擁有強大的性能&#xff0c;很多用戶辦公都喜歡用聯想電腦。有使用聯想電腦的用戶反映系統出現問題了&#xff0c;想重新安裝一個正常的系統&#xff0c;但是不知道重新系統的具體步驟。接下來小編詳細介紹給聯想電腦重新安裝Win10系統系統的方法步驟。 推薦下載 系統之…

Codeforces Round 913 (Div. 3) (A-G)

后天就是 I C P C ICPC ICPC杭州站了&#xff0c;今天把之前做的 d i v 3 div3 div3題補一下&#xff0c;打完這場杭州站這賽季除了 E C F i n a l EC\,\,Final ECFinal就結束了&#xff0c;以后應該要多打 c f cf cf比賽練習保持手感&#xff0c;爭取下賽季沖一下金牌。 感覺這…

客廳顏值擔當:木飾面電視背景墻設計。福州中宅裝飾,福州裝修

你是否也為客廳的裝修設計而煩惱&#xff1f;現在&#xff0c;我為你帶來一款高顏值的木飾面電視背景墻設計&#xff0c;它將是你客廳的亮點所在。 1?? 確定背景墻的尺寸和位置 首先&#xff0c;你需要確定背景墻的尺寸和位置&#xff0c;這取決于你家電視的大小和放置位置。…