Docker Compose重啟RabbitMQ數據丟失
前言
使用 Docker Compose 部署 RabbitMQ 時,容器重啟后數據丟失是高頻痛點:配置好的隊列、交換機、消息全部清空,服務完全重置。
本文結合真實環(huán)境命令,直擊核心問題,用最簡配置解決數據持久化難題。
一、問題現(xiàn)場還原
1. 查看數據目錄(關鍵證據)
執(zhí)行命令查看 RabbitMQ 數據存儲目錄:
[root@localhost docker-compose-test]# ls rabbitmq-workflow/data/ rabbit@mqbroker-aaa rabbit@mqbroker-aaa.pid rabbit@mqbroker-aaa-plugins-expand
核心發(fā)現(xiàn):RabbitMQ 數據目錄命名規(guī)則為 rabbit@容器主機名。
2. 核心配置(僅保留關鍵代碼)
docker-compose.yaml 修復后的最簡關鍵配置:
version: '3.3'
services:
# RabbitMQ消息隊列服務
rabbitmq-workflow:
# ?? 解決數據丟失的核心配置(固定主機名)
hostname: mqbroker-aaa
image: rabbitmq:3.9.21-management
ports:
- "5672:5672"
- "15672:15672"3. 故障現(xiàn)象
未配置 hostname 前:
- 啟動容器并創(chuàng)建業(yè)務隊列;
- 重啟容器后,所有數據丟失;
- 數據目錄自動生成新的隨機名稱文件夾,舊數據無法加載。
二、根因分析
RabbitMQ 重啟丟數據的唯一核心原因:容器主機名不固定!
- RabbitMQ 數據目錄強依賴容器內部主機名生成;
- Docker 默認主機名為隨機容器ID,重啟必變;
- 主機名變更 → RabbitMQ 無法識別舊數據目錄 → 新建目錄 → 數據丟失。
三、終極解決方案
只需要一行配置,固定容器內部主機名,徹底解決問題:
hostname: mqbroker-aaa
配置后,容器重啟主機名永久不變,RabbitMQ 始終讀取同一數據目錄。
四、驗證修復效果
- 重啟容器
docker-compose down && docker-compose up -d
- 查看固定主機名
docker exec rabbitmq-workflow hostname
輸出:mqbroker-aaa(固定不變)
- 數據目錄始終唯一,無新文件夾生成。
到此這篇關于Docker Compose重啟RabbitMQ數據丟失的文章就介紹到這了,更多相關Docker Compose重啟RabbitMQ丟失內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker搭建簡單的應用棧與容器Hello World訪問詳解
這篇文章主要介紹了Docker搭建簡單的應用棧與容器Hello World訪問,結合實例形式詳細分析了Docker應用容器棧的獲取、互聯(lián)、啟動、配置以及應用訪問測試相關操作技巧,需要的朋友可以參考下2018-06-06
docker-compose build使用參數args方式
這篇文章主要介紹了docker-compose build使用參數args方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
解決'nacos默認secret.key配置不當權限繞過漏洞'的問題
這篇文章主要介紹了解決“nacos默認secret.key配置不當權限繞過漏洞“的問題,解決這個問題需要對這個key的默認值進行修改,建議不要使用明文,可以用base64,key的長度要32位以上,下面介紹一下在兩種環(huán)境下的修改方法,感興趣的朋友一起看看吧2024-01-01
在 Docker 環(huán)境中部署和運行 Nginx 的方法
在當今的技術領域,Docker 就像一位神奇的魔法師,能夠讓我們輕松地管理和部署各種應用程序,這篇文章主要介紹了在 Docker 環(huán)境中部署和運行 Nginx 的方法,需要的朋友可以參考下2024-12-12

