docker及docker-compose安裝及使用

docker compose

🔗官網地址

一、為什么要使用docker compose

1.	簡化管理
?	通過一個 YAML 文件定義和管理多容器應用。
?	簡化服務間的編排與協調,方便環境的管理與復制。
2.	提升協作效率
?	配置文件易于共享,便于開發、運維等團隊協作。
?	加快問題解決速度,提升整體開發效率。
3.	加快開發迭代
?	Compose 緩存容器配置,未更改的服務可復用容器。
?	快速修改和重啟環境,提高開發與測試效率。
4.	良好的可移植性
?	支持在 Compose 文件中使用變量。
?	可靈活適配不同環境和用戶需求。
5.	強大的社區支持
?	擁有活躍社區和豐富的資源與教程。
?	持續更新迭代,便于問題排查與學習提升。

二、 docker compose簡介

1、Docker Compose是一個工具,用于定義和運行多容器應用程序的工具;

2、Docker Compose通過yml文件定義多容器的docker應用;

3、Docker Compose通過一條命令根據yml文件的定義去創建或管理多容器;

如下圖所示:
在這里插入圖片描述

三、下載與安裝

下載與安裝:

  • 在安裝docker時候已經完成了安裝,直接查看版本號,查看是否安裝成功
  • Docker 的 RPM 包已經 自動附帶了 Compose 插件(docker-compose-plugin)
docker compose version

在這里插入圖片描述
如果你想看看你的docker compose安裝目錄

docker info | grep -i compose
# -i   忽略大小寫 (ignore)

在這里插入圖片描述

四、 入門案例

需求:使用docker compose部署redis和mysql

docker-compose.yml文件的內容如下所示:
我本地已經有redis 6379和mysql 3306, 還有他們對應的數據卷, 為了避免各種沖突, 所以我的配置看起來有些奇怪

1、使用vim編輯

vim  docker-compose.yml
# 按i 進入編輯模式 粘貼配置
# 按escwq  #保存并退出
version: '3.9'  # 指定 Docker Compose 文件版本(可選但推薦)services:redis:  # Redis 服務image: redis:7.0.10  # 使用 Redis 7.0.10 鏡像container_name: redis-test  # 容器名稱為 redis-testports:- "6380:6379"  # 宿主機端口6380映射到容器6379volumes:- redis-data-test:/data  # 使用命名卷持久化 Redis 數據mysql:  # MySQL 服務image: mysql:8.0.30container_name: mysql-testports:- "3307:3306"  # 宿主機端口3307映射到容器3306volumes:- mysql_data-test:/var/lib/mysql  # 數據目錄- mysql_conf-test:/etc/mysql      # 配置目錄privileged: true  # 給予容器 root 權限(僅建議測試環境使用)environment:- MYSQL_ROOT_PASSWORD=test  # 設置 root 密碼volumes:redis-data-test: {}     # Redis 數據卷mysql_data-test: {}     # MySQL 數據卷mysql_conf-test: {}     # MySQL 配置卷
  • 解釋一下 volumes:
    🔹 告訴 Docker Compose:
    “我要用這幾個命名卷(redis-data-test、mysql_data-test、mysql_conf-test),你用默認設置幫我創建就行。”
    📦 這些卷的作用:
    ? 是 命名卷(Named Volumes),用于數據持久化。
    ? 會在路徑 /var/lib/docker/volumes/<卷名>/_data 中保存數據。
    ? 每次運行 Compose 時都會復用這些卷(不會重復創建,但會自動掛載)。
    ? 即使你刪除了容器,卷中的數據也會保留。
    📌 {} 的作用
    ? {} 表示“使用默認設置創建”
    ? 你也可以只寫成這樣,效果一樣:
volumes:redis-data-test:mysql_data-test:mysql_conf-test:

2、使用cat命令

  • 如果你的格式是復制過去是亂的可以用cat命令不走編輯器
cat > docker-compose.yml <<EOF
version: '3.9'  # 指定 Docker Compose 文件版本(可選但推薦)services:redis:  # Redis 服務image: redis:7.0.10  # 使用 Redis 7.0.10 鏡像container_name: redis-test  # 容器名稱為 redis-testports:- "6380:6379"  # 宿主機端口6380映射到容器6379volumes:- redis-data-test:/data  # 使用命名卷持久化 Redis 數據mysql:  # MySQL 服務image: mysql:8.0.30container_name: mysql-testports:- "3307:3306"  # 宿主機端口3307映射到容器3306volumes:- mysql_data-test:/var/lib/mysql  # 數據目錄- mysql_conf-test:/etc/mysql      # 配置目錄privileged: true  # 給予容器 root 權限(僅建議測試環境使用)environment:- MYSQL_ROOT_PASSWORD=test  # 設置 root 密碼volumes:redis-data-test: {}     # Redis 數據卷mysql_data-test: {}     # MySQL 數據卷mysql_conf-test: {}     # MySQL 配置卷
EOF

在這里插入圖片描述
在這里插入圖片描述

3、docker compose常用命令:

# 啟動容器(如果不存在容器就創建、存在則修改)
docker compose -f docker-compose.yml up -d# 刪除所有容器
docker compose -f docker-compose.yml down# 停止所有容器
docker compose -f docker-compose.yml stop# 啟動所有容器
docker compose -f docker-compose.yml start# 重啟所有容器
docker compose -f docker-compose.yml restart

🔗常見指令參考官方文檔

4、 查看結果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

  • 干掉
    在這里插入圖片描述

五、部署springboot項目也一樣

在yml配置中添加你制造好的鏡像, 如何制作springboot鏡像見教程🔗

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

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

相關文章

JVM學習專題(二)內存模型深度剖析

目錄 1.JVM結構體系 ?編輯 2.跨平臺特性 3.JVM整體結構及內存模型 1.棧內存 1、棧幀&#xff1a; 1.局部變量表 2.操作數棧 3.動態鏈接 4.方法出口 2、創建對象 2.程序計數器&#xff1a; 3.方法區 ?4.堆 5.本地方法區 6.總結 1.JVM結構體系 JDK、JRE 和 JVM…

Flink之Table API

Apache Flink 的 Table API 是 Flink 提供的一種高級抽象&#xff0c;用于以聲明式方式處理批處理和流處理數據。它是基于關系模型的 API&#xff0c;用戶可以像編寫 SQL 一樣&#xff0c;以簡潔、類型安全的方式編寫數據處理邏輯。 一、基本概念 1. 什么是 Table API&#xf…

基于Vue3.0的高德地圖api教程005:實現繪制線并編輯功能

文章目錄 6、繪制多段線6.1 繪制多段線6.1.1 開啟繪制功能6.1.2 雙擊完成繪制6.1.3 保存到數據庫6.2 修改多段線6.2.1 點擊線,進入編輯模式6.2.2 編輯線6.3 完整代碼6、繪制多段線 6.1 繪制多段線 6.1.1 開啟繪制功能 實現代碼: const changeSwitchDrawPolyline = ()=>…

“redis 目標計算機積極拒絕,無法連接” 解決方法,每次開機啟動redis

如果遇到以上問題 先打開“服務” 找到App Readiness 右擊-啟動 以管理員身份運行cmd&#xff0c;跳轉到 安裝redis的目錄 運行&#xff1a;redis-server.exe redis.windows.conf 以管理員身份打開另一cmd窗口&#xff0c;跳轉到安裝redis的目錄 運行&#xff1a;redis-…

Java 大視界——Java 大數據在智慧交通智能停車誘導系統中的數據融合與實時更新

面對城市停車資源錯配導致的30%以上交通擁堵問題&#xff0c;本文以某新一線城市智慧交通項目為藍本&#xff0c;深度解析Java大數據技術如何實現多源停車數據融合、動態路徑規劃與誘導策略優化。通過構建“感知-計算-決策”全鏈路系統&#xff0c;實現車位狀態更新延遲<200…

牛客周賽 Round 92(再現京津冀藍橋杯???)

1. 小紅的簽到題 現在小紅希望你寫出一個長度為 nnn 的、使用了下劃線命名法命名的變量。為了顯出特征&#xff0c;請保證該變量至少由兩個單詞組成。 輸入描述: 輸入一個正整數 n(3≦n≦100)&#xff0c;代表需要構造的變量長度。 輸出描述: 輸出一個長度為 n 的字符串&#x…

2025-05-11 Unity 網絡基礎11——UnityWebRequest

文章目錄 1 UnityWebRequest 介紹2 搭建 HTTP 服務器3 常用操作3.1下載資源3.1.1 下載文本3.1.2 下載圖片3.1.3 下載 AB 包 3.2 上傳資源3.2.1 上傳數據類3.2.2 POST 上傳3.3.3 PUT 上傳 4 自定義操作4.1 下載資源4.1.1 Unity 內置 Handler4.1.2 自定義 Handler 4.2 上傳資源4.…

GitHub 趨勢日報 (2025年05月09日)

本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星總星數語言1voideditor/void? 1879? 15214TypeScript2ruanyf/weekly科技愛好者周刊&…

.NET MAUI 基礎知識

文章目錄 什么是 .NET MAUI&#xff1f;MAUI的核心特點與Xamarin.Forms的區別 開發環境搭建安裝Visual Studio 2022安裝必要組件配置Android開發環境配置iOS開發環境驗證安裝 創建第一個MAUI應用創建新項目MAUI項目結構解析理解關鍵文件運行應用程序簡單修改示例使用熱重載 MAU…

卷積神經網絡全連接層詳解:特征匯總、FCN替代與性能影響分析

【內容摘要】 本文聚焦卷積神經網絡&#xff08;CNN&#xff09;的全連接層&#xff0c;詳細介紹其將二維特征圖轉化為一維向量的過程&#xff0c;闡述全卷積網絡&#xff08;FCN&#xff09;如何通過轉置卷積替代全連接層以實現像素級分類&#xff0c;并分析全連接層對圖像分類…

在C++中進行套接字編程時,主要使用以下頭文件

目錄 一.基本套接字頭文件<sys/socket.h><netinet/in.h><arpa/inet.h><unistd.h><netdb.h> 二. 完整示例頭文件包含三. 注意事項 在C中進行套接字編程時&#xff0c;主要使用以下頭文件&#xff1a; 一.基本套接字頭文件 <sys/socket.h>…

【Linux網絡】HTTP

應用層協議 HTTP 前置知識 我們上網的所有行為都是在做IO&#xff0c;&#xff08;我的數據給別人&#xff0c;別人的數據給我&#xff09;圖片。視頻&#xff0c;音頻&#xff0c;文本等等&#xff0c;都是資源答復前需要先確認我要的資源在哪臺服務器上&#xff08;網絡IP&…

JAVA異常體系

在 Java 里&#xff0c;異常體系是其錯誤處理機制的核心內容&#xff0c;它能夠幫助開發者有效應對程序運行時出現的各種意外狀況。 異常體系的基本架構 它主要包含兩個重要分支&#xff1a; Error&#xff08;錯誤&#xff09;&#xff1a;這類異常是程序自身無法處理的嚴重…

vue 去掉右邊table的下拉條與下面的白色邊框并補充滿

::v-deep table {width: 100% !important; } ::v-deep .el-table::after, .el-table::before {display: none !important; }/* 隱藏滾動條但保留滾動功能 */ ::v-deep .el-table__body-wrapper::-webkit-scrollbar {width: 0 !important;height: 0 !important; }::v-deep .el-t…

uniapp+vue3+uview來開發我們的項目

前言&#xff1a; 就像我們vue的web的框架element、iview等一樣&#xff0c;我們的uni-app開發也有適合的他的框架&#xff0c;除了他本身的擴展組件以外&#xff0c;第三方好用的就是就是uview了。 實現效果&#xff1a; 官網信息&#xff1a; vue2版本&#xff1a;uview-ui …

數據倉庫:企業數據管理的核心引擎

一、數據倉庫的由來 數據倉庫&#xff08;Data Warehouse, DW&#xff09;概念的誕生源于企業對數據價值的深度挖掘需求。在1980年代&#xff0c;隨著OLTP&#xff08;聯機事務處理&#xff09;系統在企業中的普及&#xff0c;傳統關系型數據庫在處理海量數據分析時顯露出明顯瓶…

YOLOv12模型部署(保姆級)

一、下載YOLOv12源碼 1.通過網盤分享的文件&#xff1a;YOLOv12 鏈接: https://pan.baidu.com/s/12-DEbWx1Gu7dC-ehIIaKtQ 提取碼: sgqy &#xff08;網盤下載&#xff09; 2.進入github克隆YOLOv12源碼包 二、安裝Anaconda/pycharm 點擊獲取官網鏈接(anaconda) 點擊獲取…

一篇解決Redis:持久化機制

目錄 認識持久化 持久化方案 RDB&#xff08;Redis DataBase&#xff09; 手動觸發 自動觸發 小結 AOF(Append-Only File) AOF緩沖區刷新機制 AOF重寫機制 AOF重寫流程 ?編輯 混合持久化 認識持久化 我們都知道Mysql有四大特征&#xff0c;原子性&#xff0c;持久…

從 Vue3 回望 Vue2:事件總線的前世今生

從 Vue3 回望 Vue2&#xff1a;事件總線的前世今生 以 Vue3 開發者視角回顧 Vue2 中事件總線機制 的文章。文章將圍繞事件總線的緣起、用法、局限與演進展開&#xff0c;幫助 Vue3 開發者理解 Vue2 通信方式的歷史意義及現代替代方案。 一、前言&#xff1a;Vue3 時代&#xff…

CSS結構性偽類、UI偽類與動態偽類全解析:從文檔結構到交互狀態的精準選擇

一、結構性偽類選擇器&#xff1a;文檔樹中的位置導航器 結構性偽類選擇器是CSS中基于元素在HTML文檔樹中的層級關系、位置索引或結構特征進行匹配的一類選擇器。它們無需依賴具體的類名或ID&#xff0c;僅通過文檔結構即可精準定位元素&#xff0c;是實現響應式布局和復雜文檔…