欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker?搭建?RabbitMQ的詳細(xì)過程

 更新時(shí)間:2025年04月18日 10:11:48   作者:代碼怪獸大作戰(zhàn)  
在現(xiàn)代微服務(wù)與分布式架構(gòu)中,RabbitMQ?是一款成熟的開源消息隊(duì)列中間件,提供了可靠的消息投遞、豐富的路由策略和管理插件,本文將詳細(xì)介紹Docker?搭建?RabbitMQ的過程,感興趣的朋友一起看看吧

前言

在現(xiàn)代微服務(wù)與分布式架構(gòu)中,RabbitMQ 是一款成熟的開源消息隊(duì)列中間件,提供了可靠的消息投遞、豐富的路由策略和管理插件。通過 Docker 部署 RabbitMQ,可以快速搭建、輕松擴(kuò)展,并與容器化平臺(tái)無縫集成。

本文將指導(dǎo)你通過 Docker 快速搭建一個(gè) RabbitMQ 環(huán)境,講解目錄結(jié)構(gòu)、啟動(dòng)腳本編寫、參數(shù)詳解,以及兩種網(wǎng)絡(luò)模式(Host 網(wǎng)絡(luò)模式 vs Port 映射模式)的部署示例與對(duì)比。

一、準(zhǔn)備工作

首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。

Linux上進(jìn)行Docker安裝有兩種方式:

  • Docker自動(dòng)化安裝
  • Docker手動(dòng)安裝

可以根據(jù)該文章的步驟進(jìn)行安裝:http://www.dbjr.com.cn/server/339879ek2.htm

二、設(shè)置目錄結(jié)構(gòu)

為了持久化存儲(chǔ)日志、數(shù)據(jù)和配置,需要在宿主機(jī)上創(chuàng)建對(duì)應(yīng)目錄,并賦予 RabbitMQ 容器內(nèi)部用戶(UID 999)的寫權(quán)限。

# 創(chuàng)建日志、數(shù)據(jù)和配置目錄
mkdir -p "$DIR/rabbitmq/log"
mkdir -p "$DIR/rabbitmq/data"
mkdir -p "$DIR/rabbitmq/conf"
# 設(shè)置目錄權(quán)限為容器內(nèi) rabbitmq 用戶(UID 999)
sudo chown -R 999:999 \
  "$DIR/rabbitmq/log" \
  "$DIR/rabbitmq/data" \
  "$DIR/rabbitmq/conf"
  • log:存放 RabbitMQ 日志
  • data:存放 Mnesia 數(shù)據(jù)庫(kù)文件
  • conf:存放自定義配置(如 rabbitmq.conf、advanced.config、enabled_plugins)

三、編寫啟動(dòng)腳本

將目錄準(zhǔn)備工作與容器運(yùn)行命令整合到腳本 rabbitmq_install.sh 中,方便一鍵部署與更新。

#!/bin/bash
# 安裝路徑與容器名稱
DIR="/opt/docker/demo"
DOCKER_NAME="docker-rabbitmq"
# 創(chuàng)建目錄并設(shè)置權(quán)限
mkdir -p "$DIR/rabbitmq/log"
mkdir -p "$DIR/rabbitmq/data"
mkdir -p "$DIR/rabbitmq/conf"
sudo chown -R 999:999 "$DIR/rabbitmq/log" \
                     "$DIR/rabbitmq/data" \
                     "$DIR/rabbitmq/conf"
# 運(yùn)行 RabbitMQ 容器(Host 網(wǎng)絡(luò)模式)
docker run -d \
  --restart=always \                          # 容器重啟策略
  --name "$DOCKER_NAME" \                     # 容器名稱
  --network host \                            # 主機(jī)網(wǎng)絡(luò)模式
  -v "$DIR/rabbitmq/log:/var/log/rabbitmq" \  # 日志掛載
  -v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \  # 數(shù)據(jù)掛載
  -v "$DIR/rabbitmq/conf:/etc/rabbitmq" \     # 配置掛載
  -e RABBITMQ_DEFAULT_USER=admin \            # 默認(rèn)用戶名
  -e RABBITMQ_DEFAULT_PASS=admin123456 \      # 默認(rèn)密碼
  -e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \ # 啟用管理插件
  rabbitmq:management                         # 官方管理版鏡像

保存后,賦予執(zhí)行權(quán)限并運(yùn)行:

chmod +x run_rabbitmq.sh
./run_rabbitmq.sh

解釋各個(gè)參數(shù)

  • -d:后臺(tái)運(yùn)行容器。
  • --restart=always:重啟策略:當(dāng)容器退出或 Docker 重啟時(shí),總是自動(dòng)重啟該容器。
  • --name "$DOCKER_NAME":容器的名稱為 docker-rabbitmq。
  • --network host:使用主機(jī)網(wǎng)絡(luò)模式(Host networking),容器與宿主機(jī)共享網(wǎng)絡(luò)棧。
  • -v "$DIR/rabbitmq/log:/var/log/rabbitmq":日志掛載-v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia": 數(shù)據(jù)掛載。
  • -v "$DIR/rabbitmq/conf:/etc/rabbitmq":配置掛載。
  • -e RABBITMQ_DEFAULT_USER=…:環(huán)境變量,設(shè)置 RabbitMQ 默認(rèn)用戶名(第一次啟動(dòng)時(shí)生效)。
  • -e RABBITMQ_DEFAULT_PASS=…:環(huán)境變量,設(shè)置 RabbitMQ 默認(rèn)密碼。
  • -e RABBITMQ_ENABLED_PLUGINS=…:環(huán)境變量,啟用指定插件(以逗號(hào)分隔),此處開啟管理控制臺(tái)插件。
  • rabbitmq:management:指定鏡像及標(biāo)簽,management 版本內(nèi)置了管理插件與 Web 控制臺(tái)。

四、Host 網(wǎng)絡(luò)模式 vs Port 映射模式

1. Host 網(wǎng)絡(luò)模式

命令示例

docker run -d \
  --restart=always \
  --name "$DOCKER_NAME" \
  --network host \
  -v "$DIR/rabbitmq/log:/var/log/rabbitmq" \
  -v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \
  -v "$DIR/rabbitmq/conf:/etc/rabbitmq" \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin123456 \
  -e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \
  rabbitmq:management

特點(diǎn)

  • 容器直接使用宿主機(jī)的網(wǎng)絡(luò)棧,RabbitMQ 內(nèi)部監(jiān)聽的端口(默認(rèn) 5672、15672)會(huì)直接映射到宿主機(jī)相同端口。

  • 網(wǎng)絡(luò)性能最佳,無額外的 NAT 轉(zhuǎn)發(fā)開銷。

優(yōu)點(diǎn)

  • 簡(jiǎn)化網(wǎng)絡(luò)配置,無需額外的 -p 端口映射。

  • 延遲更低,吞吐更高。

缺點(diǎn)

  • 與宿主機(jī)完全共享端口,若宿主機(jī)已有同端口服務(wù)運(yùn)行,會(huì)沖突。

  • 安全隔離較弱,容器網(wǎng)絡(luò)直接暴露給宿主機(jī)。

2. Port 映射模式

命令示例

docker run -d \
  --restart=always \
  --name "$DOCKER_NAME" \
  -p 5673:5672 \
  -p 15673:15672 \
  -v "$DIR/rabbitmq/log:/var/log/rabbitmq" \
  -v "$DIR/rabbitmq/data:/var/lib/rabbitmq/mnesia" \
  -v "$DIR/rabbitmq/conf:/etc/rabbitmq" \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin123456 \
  -e RABBITMQ_ENABLED_PLUGINS="rabbitmq_management" \
  rabbitmq:management

含義

  • -p 5673:5672:將宿主機(jī)的 5673 端口映射到容器內(nèi)的 5672(AMQP)端口。
  • -p 15673:15672:將宿主機(jī)的 15673 端口映射到容器內(nèi)的 15672(管理控制臺(tái))端口。

優(yōu)點(diǎn)

  • 靈活指定宿主機(jī)端口,避免與其他服務(wù)沖突。
  • 容器網(wǎng)絡(luò)與宿主機(jī)隔離更好,安全性更高。

缺點(diǎn)

  • 相比 Host 模式,略有端口轉(zhuǎn)發(fā)開銷。

  • 需手動(dòng)管理多端口映射配置。

五、端口配置對(duì)比

特性Host 網(wǎng)絡(luò)模式Port 映射模式
配置命令--network host-p host:container
網(wǎng)絡(luò)性能最佳,無 NAT 轉(zhuǎn)發(fā)開銷有少量轉(zhuǎn)發(fā)開銷
端口沖突風(fēng)險(xiǎn)高,容器直接占用宿主機(jī)端口低,可自定義宿主機(jī)端口
安全隔離較弱較強(qiáng)
多容器端口復(fù)用不支持支持,不同容器映射到不同端口
配置復(fù)雜度簡(jiǎn)單需要顯式映射

六、配置示例

rabbitmq.conf(放置于 $DIR/rabbitmq/conf/rabbitmq.conf)

# 修改 AMQP 端口
listeners.tcp.default = 5673  # 修改為你想要的端口
# 修改 RabbitMQ 管理界面端口
management.listener.port = 15673  # 修改為你想要的端口
# 允許非本地訪問 guest 用戶
loopback_users.guest = false

enabled_plugins(放置于 $DIR/rabbitmq/conf/enabled_plugins)

[rabbitmq_management,rabbitmq_peer_discovery_classic_config].

七、查看與管理

查看容器狀態(tài)

docker ps | grep "$DOCKER_NAME"

查看日志

tail -f "$DIR/rabbitmq/log/rabbit@$(hostname).log"
或
docker logs -f $DOCKER_NAME

訪問管理控制臺(tái)

瀏覽器訪問 http://<宿主機(jī)IP>:15672,使用 admin/admin123456 登錄。

八、擴(kuò)展與高可用

集群部署

  • 在多臺(tái)主機(jī)上運(yùn)行相同腳本,調(diào)整容器名稱與配置
  • 使用 rabbitmq_peer_discovery_classic_config 或 Kubernetes 插件實(shí)現(xiàn)自動(dòng)發(fā)現(xiàn)與集群組網(wǎng)

鏡像隊(duì)列與策略

  • 在管理控制臺(tái)或配置文件中設(shè)置隊(duì)列鏡像策略,確保消息持久化與高可用

監(jiān)控與告警

  • 接入 Prometheus、Grafana 等監(jiān)控體系,利用 RabbitMQ Exporter 采集指標(biāo)

九、常用命令

修改默認(rèn)密碼

如果需要修改 RabbitMQ 的默認(rèn)密碼,可以使用以下命令:

docker exec -it "$DOCKER_NAME" rabbitmqctl change_password admin newpassword

請(qǐng)將 newpassword 替換為希望設(shè)置的新密碼。

啟用其他插件

如果需要啟用其他 RabbitMQ 插件,可以使用以下命令:

docker exec -it "$DOCKER_NAME" rabbitmq-plugins enable <plugin_name>

請(qǐng)將 <plugin_name> 替換為希望啟用的插件名稱。

到此這篇關(guān)于Docker 搭建 RabbitMQ的詳細(xì)過程的文章就介紹到這了,更多相關(guān)Docker 搭建 RabbitMQ內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器與宿主機(jī)相互訪問更方便的方法

    Docker容器與宿主機(jī)相互訪問更方便的方法

    Docker是當(dāng)今使用范圍最廣的開源容器技術(shù)之一,具有高效易用的優(yōu)點(diǎn),然而如果使用Docker時(shí)采取不當(dāng)安全策略,則可能導(dǎo)致系統(tǒng)面臨安全威脅,這篇文章主要給大家介紹了關(guān)于Docker容器與宿主機(jī)相互訪問更方便的方法,需要的朋友可以參考下
    2023-05-05
  • docker安裝目錄遷移的兩種常用方法

    docker安裝目錄遷移的兩種常用方法

    docker目錄的遷移其實(shí)非常簡(jiǎn)單,今天小編給大家分享兩種方法幫助大家解決docker安裝目錄遷移問題,感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • 虛擬機(jī)如何安裝指定版本的Docker舉例詳解

    虛擬機(jī)如何安裝指定版本的Docker舉例詳解

    這篇文章主要介紹了虛擬機(jī)如何安裝指定版本的Docker的相關(guān)資料,包括配置yum源、查看可用版本、安裝指定版本、卸載舊版本、解決沖突、再次安裝以及最后驗(yàn)證安裝,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • docker-compose安裝jenkins全過程

    docker-compose安裝jenkins全過程

    本文詳細(xì)介紹了如何在服務(wù)器上通過Docker安裝和配置Jenkins,包括環(huán)境準(zhǔn)備、安裝JDK和Maven、配置環(huán)境變量、修改Maven設(shè)置、配置docker-compose.yml文件以及如何解決訪問403錯(cuò)誤等步驟,此外,還涵蓋了如何新建流水線任務(wù)并配置pipeline腳本
    2024-09-09
  • Docker buildx構(gòu)建多平臺(tái)鏡像并推送到私有倉(cāng)庫(kù)的方法

    Docker buildx構(gòu)建多平臺(tái)鏡像并推送到私有倉(cāng)庫(kù)的方法

    這篇文章主要介紹了Docker buildx構(gòu)建多平臺(tái)鏡像并推送到私有倉(cāng)庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:conflict:unable to delete xxx (cannot be forced)

    解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:con

    刪除Docker鏡像時(shí)遇到?jīng)_突,因?yàn)殓R像正在被一個(gè)運(yùn)行中的容器使用,解決方法是先停止并刪除該容器,然后再嘗試刪除鏡像,此外,還可以選擇強(qiáng)制刪除鏡像,但這可能會(huì)導(dǎo)致數(shù)據(jù)丟失
    2024-11-11
  • ps命令在docker容器不存在的問題

    ps命令在docker容器不存在的問題

    這篇文章主要介紹了ps命令在docker容器不存在的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 使用docker?compose部署emqx集群的示例

    使用docker?compose部署emqx集群的示例

    這篇文章主要介紹了使用docker compose部署emqx集群,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • docker-compose容器互相連接的實(shí)現(xiàn)

    docker-compose容器互相連接的實(shí)現(xiàn)

    本文主要介紹了docker-compose容器互相連接的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Docker與DevOps的結(jié)合使用

    Docker與DevOps的結(jié)合使用

    結(jié)合Docker和DevOps文化的實(shí)踐,可以幫助團(tuán)隊(duì)實(shí)現(xiàn)自動(dòng)化、監(jiān)控和日志管理等方面的最佳實(shí)踐,本文將介紹如何將Docker與DevOps文化相結(jié)合使用,并詳細(xì)闡述如何使用Docker進(jìn)行DevOps自動(dòng)化、監(jiān)控和日志管理等方面的實(shí)踐,需要的朋友參考下吧
    2023-08-08

最新評(píng)論