docker-compose容器單機編排

docker-compose容器單機編排

開篇前言

隨著網站架構的升級,容器的使用也越來越頻繁,應用服務和容器之間的關系也越發的復雜。

這個就要求研發人員能更好的方法去管理數量較多的服務器,而不能手動挨個管理。

例如一個LNMP 架構,就得部署web服務器,后臺的程序,數據庫,負載均衡等等都需要統一的部署在容器中,那么這個時候就需要統一的容器編排服務,docker-compose,通過單獨的docker-compose.yml.模板文件定義一組相關聯的應用服務器。

多看看官方文檔

看看官方的資料
https://docs.docker.com/compose/compose-file/

第三方的資料也可以看看

https://yeasy.gitbook.io/docker_practice/compose/

在這里插入圖片描述

為什么要學習docker-compose

當你去運行一組應用的容器,多組的應用,里面會有很多的容器。

應用1,crm系統,lnmp、8個容器之間,都有關系,如大家都是屬于哪一個網段 192.168.15.0/24
8個容器之間的 網絡用哪一個網橋
8個容器都要暴露出哪些端口
8個容器都要定義哪些數據卷

應用2 同上,12個容器
12個容器 docker run *  12定義好yaml文件【描述好,你要的】

命令化的一個部署

docker run 運行的時候,再臨時傳入參數,
–network
-v
–link


yaml 腳本化的部署方式

ansible all -m shell -a ‘xxxx’

install-lnmp.yaml 先描述好,腳本要部署的環境

定義好yaml文件,【描述好 你要】

  1. 用的網橋是誰
  2. 存儲卷
  3. 容器和容器之間的依賴關系

自己寫過那些yaml腳本

  • ansible playbook ,role 腳本
  • docker-compose.yaml 買哦書容器部署的腳本【描述好,你要部署什么,什么鏡像,什么存儲】
  • k8s的資源描述yaml【先描述好,你要部署什么,什么存儲】

總結一句話,先想好要敲什么命令,再把命令轉化成yaml的語法形式

機器上看到的一組運行的服務器

定義一組docker-compose 網站類的服務

web服務器 image : nginx

后臺運行的程序服務 images : php-centos python-centos

在這里插入圖片描述

compose 是基于定義和運行多個容器的一個docker內置工具

compose 需要你,自己去定義yaml文件來描述多個容器之間的關系

寫好yaml之后,基于compose命令去讀取yaml內容

如何用docker-compose

1.定義好你容器的關系
nginx
php
mysql
redis 
...yaml語法該怎么樣去寫,有哪些字段?該用什么語法?縮進關系是什么看看官方的資料
https://docs.docker.com/compose/compose-file/

在這里插入圖片描述

所有的高級軟件,最精準的資料都在這里找

下一步學習k8s官方的資料,沒有這個官網完美

在這里插入圖片描述

如何查看官網資料,理解字段如何寫

在這里插入圖片描述

如何查閱官網的docker-compose字段

在這里插入圖片描述

LNMP 公司php后端的員工管理系統

nginx , php , mysql 他們都走互相的主機名

  1. –name mysql

  2. –name my-php --link mysql

  3. –name my-nginx --link my-php

# 比如部署wordpress 到容器里
docker run 挨個運行,每一個容器的環境# 服務1 nginx,web服務,代理服務
# 現有的宿主機nginx的運行環境,遷移到容器里面去 /etc/nginx/docker run -d --name mynginx -p 80:80\
-v /etc/nginx/:/etc/nginx \
-v /var/log/nginx:/var/log/nginx nginx:latest# 服務2 php服務,提供后端服務,wordpress , 官方鏡像,php的運行環境。# 先基于dockerfile構建鏡像,php+centos環境 , mysqldocker run -d -v 宿主機目錄:容器內的目錄 myphp 

1.要清楚啟動容器的順序,------- 你寫的yaml腳本中各個服務的依賴關系

2.容器啟動的參數,如網絡,數據卷,端口暴露,這是每一個制定的服務,設置的參數。

安裝docker-compose

[root@docker-110 ~]# file /usr/bin/docker-compose 
/usr/bin/docker-compose: cannot open (No such file or directory)# 有的化先刪除或者優化curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose# 看看這個命令的信息
file /usr/local/bin/docker-compose 
/usr/local/bin/docker-compose: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=3507aa01d32c34dc8e8c6462b764adb90a82768d, stripped# 給他加上執行的權限
[root@docker-110 ~]# chmod +x /usr/local/bin/docker-compose 

docker-compose命令整理

# 默認使用docker-compose.yml構建鏡像
$ docker-compose build
$ docker-compose build --no-cache # 不帶緩存的構建# 指定不同yml文件模板用于構建鏡像
$ docker-compose build -f docker-compose1.yml# 列出Compose文件構建的鏡像
$ docker-compose images                          # 啟動所有編排容器服務
$ docker-compose up -d# 查看正在運行中的容器
$ docker-compose ps # 查看所有編排容器,包括已停止的容器
$ docker-compose ps -a# 進入指定容器執行命令
$ docker-compose exec nginx bash 
$ docker-compose exec web python manage.py migrate --noinput# 查看web容器的實時日志
$ docker-compose logs -f web# 停止所有up命令啟動的容器
$ docker-compose down # 停止所有up命令啟動的容器,并移除數據卷
$ docker-compose down -v# 重新啟動停止服務的容器
$ docker-compose restart web# 暫停web容器
$ docker-compose pause web# 恢復web容器
$ docker-compose unpause web# 刪除web容器,刪除前必需停止stop web容器服務
$ docker-compose rm web  # 查看各個服務容器內運行的進程 
$ docker-compose top     # 合集命令
build
config -q
create
down
events
exec
help
images
kill
logs
pause
restart
rm
run
scale
start
stop
top
unpause
up

docker-compose語法

1.官方文檔
https://compose-spec.github.io/compose-spec/#use-cases2.菜鳥文檔3.還有一個不錯的教程,每一個參數不認識的可以來這里看看
https://yeasy.gitbook.io/docker_practice/compose/
這個網站也不錯

在這里插入圖片描述

如何理解yaml的元素關系以及作用

在這里插入圖片描述

不可能一上來就從頭開始寫 yaml

shell 腳本

  1. 多看
  2. 多模仿
  3. 熟練看懂較多的腳本后,理解大部分的字段是什么作用,縮進關系,以及改寫什么參數,以及遇見不認識的參數,從哪里找資料。
  4. 模仿改造為你自己的腳本,【如智能汽車運行系統】,跑起來,ubuntu里面。。
    【wordpres運行系統】
  5. #docker-compose v3 三代版本,能用最新的字段

docker-compose.yml

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

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

相關文章

LeetCode--29.兩數相除

解題思路: 1.獲取信息: 給定兩個整數,一個除數,一個被除數,要求返回商(商取整數) 限制條件:(1)不能使用乘法,除法和取余運算 (2&#…

中山大學GaussianFusion:首個將高斯表示引入端到端自動駕駛多傳感器融合的新框架

摘要 近年來由于端到端自動駕駛極大簡化了原有傳統自動駕駛模塊化的流程,吸引了來自工業界和學術界的廣泛關注。然而,現有的端到端智駕算法通常采用單一傳感器,使其在處理復雜多樣和具有挑戰性的駕駛場景中受到了限制。而多傳感器融合可以很…

《哈希算法》題集

1、模板題集 滿足差值的數字對 2、課內題集 字符統計 字符串統計 優質數對 3、課后題集 2006 Equations k倍區間 可結合的元素對 滿足差值的數字對 異常頻率 神秘數對 費里的語言 連連看 本題集為作者(英雄哪里出來)在抖音的獨家課程《英雄C入門到精…

Cordova移動應用對云端服務器數據庫的跨域訪問

Cordova移動應用對云端服務器數據庫的跨域訪問 當基于類似 Cordova這樣的跨平臺開發框架進行移動應用的跨平臺開發時,往往需要訪問部署在公網云端服務器上的數據庫,這時就涉及到了跨域數據訪問的問題。 文章目錄 Cordova移動應用對云端服務器數據庫的跨…

mysql知識點3--創建和使用數據庫

mysql知識點3–創建數據庫 創建數據庫 在MySQL中創建數據庫使用CREATE DATABASE語句。語法如下: CREATE DATABASE database_name;其中database_name為自定義的數據庫名稱。例如創建名為test_db的數據庫: CREATE DATABASE test_db;可以添加字符集和排…

林業資源多元監測技術守護綠水青山

在云南高黎貢山的密林中,無人機群正以毫米級精度掃描古樹年輪;福建武夷山保護區,衛星遙感數據實時追蹤著珍稀動植物的棲息地變化;海南熱帶雨林里,AI算法正從億萬條數據中預測下一場山火的風險……這些科幻場景&#xf…

一階/二階Nomoto模型(野本模型)為何“看不到”船速對回轉角速度/角加速度的影響?

提問 圖中的公式反映的是舵角和力矩之間的關系, 其中可以看到力矩(可以理解為角加速度)以及相應導致的回轉角速度和當前的舵速(主要由船速貢獻)有關,那么為什么一階Nomoto模型(一階野本&#xf…

深入剖析 C++ 默認函數:拷貝構造與賦值運算符重載

目錄 1. 簡單認識C 類的默認函數 1.1 默認構造函數 1.2 析構函數 1.3 拷貝構造函數 2. 拷貝構造函數的深入理解 拷貝構造的特點: 實際運用 3. 賦值運算符重載的深入理解 3.1.運算符重載 3.2樣例 1.比較運算符重載 2.算術運算符重載 3.自增和自減運算符重載 4.輸…

板凳-------Mysql cookbook學習 (十--3)

5.16 用短語來進行fulltext查詢 mysql> select count(*) from kjv where match(vtext) against(God); ---------- | count(*) | ---------- | 0 | ---------- 1 row in set (0.00 sec)mysql> select count(*) from kjv where match(vtext) against(sin); -------…

python爬蟲ip封禁應對辦法

目錄 一、背景現象 二、準備工作 三、代碼實現 一、背景現象 最近在做爬蟲項目時,爬取的網站,如果發送請求太頻繁的話,對方網站會先是響應緩慢,最后是封禁一段時間。一直是拒絕連接,導致程序無法正常預期的爬取數據…

【AIGC】Qwen3-Embedding:Embedding與Rerank模型新標桿

Qwen3-Embedding:Embedding與Rerank模型新標桿 一、引言二、技術架構與核心創新1. 模型結構與訓練策略(1)多階段訓練流程(2)高效推理設計(3)多語言與長上下文支持 2. 與經典模型的性能對比 三、…

算法競賽階段二-數據結構(32)數據結構簡單介紹

數據結構的基本概念 數據結構是計算機存儲、組織數據的方式,旨在高效地訪問和修改數據。它是算法設計的基礎,直接影響程序的性能。數據結構可分為線性結構和非線性結構兩大類。 線性數據結構 線性結構中,數據元素按順序排列,每…

Windows桌面圖標修復

新建文本文件,粘入以下代碼,保存為.bat文件,管理員運行這個文件 duecho off taskkill /f /im explorer.exe CD /d %userprofile%\AppData\Local DEL IconCache.db /a start explorer.exe echo 執行完成上面代碼作用是刪除桌面圖標緩存庫&…

13.react與next.js的特性和原理

🟡 一句話總結 React 專注于構建組件,而 Next.js 是基于 React 的全棧框架,提供了頁面路由、服務端渲染和全棧能力,讓你能快速開發現代 Web 應用。 React focuses on building UI components, while Next.js is a full-stack fra…

全棧監控系統架構

全棧監控系統架構 可觀測性從數據層面可分為三類: 指標度量(Metrics):記錄系統的總體運行狀態。事件日志(Logs):記錄系統運行期間發生的離散事件。鏈路追蹤(Tracing):記錄一個請求接入到結束的處理過程,主要用于排查…

云服務運行安全創新標桿:阿里云飛天洛神云網絡子系統“齊天”再次斬獲獎項

引言 為認真落實工信部《工業和信息化部辦公廳關于印發信息通信網絡運行安全管理年實施方案的通知》,2025年5月30日中國信息通信研究院于浙江杭州舉辦了“云服務運行安全高質量發展交流會”,推動正向引導,鞏固云服務安全專項治理成果。會上&a…

刀客doc:WPP走下神壇

一、至暗時刻? 6月11日,快消巨頭瑪氏公司宣布其價值17 億美元,在全球70個市場的廣告業務交給陽獅集團,這其中包括M&Ms、士力架、寶路等知名品牌。 此前,瑪氏公司一直是WPP的大客戶。早在今年3月,WPP就…

進行性核上性麻痹飲食攻略:營養安全雙護航

進行性核上性麻痹是一種罕見的神經系統退行性疾病,主要影響患者的運動、平衡和吞咽功能。除了醫學干預,科學的飲食管理也能在一定程度上減輕癥狀,提高生活質量。 由于患者常出現吞咽困難,食物質地的選擇尤為重要。應避免干硬、大塊…

阿里云可觀測 2025 年 5 月產品動態

本月可觀測熱文回顧 文章一覽: StoreView SQL,讓數據分析不受地域限制 不懂 PromQL?AI 智能體幫你玩轉大規模指標數據分析 DeepWiki LoongCollector:AI 重塑開源代碼理解 從 o11y 2.0 說起,大數據 Pipeline 的「…

React 基礎狀態管理方案

1. useState useState 是 React 提供的最基本的 Hook,用于在函數組件中添加狀態管理。它返回一個狀態變量和一個更新狀態的函數。 1.1. 使用場景 適合管理簡單的狀態。 適合管理組件內部的局部狀態。 1.2. 示例代碼 import React, { useState } from react;function Cou…