
- Docker 教程
- Docker - 首頁
- Docker - 概述
- Docker - 在 Linux 上安裝
- Docker - 安裝
- Docker - Hub
- Docker - 映象
- Docker - 容器
- Docker - 註冊中心
- Docker - Compose
- Docker - 使用容器
- Docker - 架構
- Docker - 層
- Docker - 容器和主機
- Docker - 配置
- Docker - 容器和 Shell
- Docker - Dockerfile
- Docker - 構建檔案
- Docker - 公共倉庫
- Docker - 管理埠
- Docker - Web 伺服器
- Docker - 命令
- Docker - 容器連結
- Docker - 資料儲存
- Docker - 卷
- Docker - 網路
- Docker - 安全
- Docker - 工具箱
- Docker - 雲
- Docker - 構建雲
- Docker - 日誌記錄
- Docker - 持續整合
- Docker - Kubernetes 架構
- Docker - Kubernetes 的工作原理
- Docker - 生成式 AI
- Docker - 託管
- Docker - 最佳實踐
- Docker 設定服務
- Docker - 設定 Node.js
- Docker - 設定 MongoDB
- Docker - 設定 NGINX
- Docker - 設定 ASP.Net
- Docker - 設定 MySQL
- Docker - 設定 Go
- Docker - 設定 Rust
- Docker - 設定 Apache
- Docker - 設定 MariaDB
- Docker - 設定 Jupyter
- Docker - 設定 Portainer
- Docker - 設定 Rstudio
- Docker - 設定 Plex
- Docker 設定 - Flame
- Docker 設定 - PostgreSql
- Docker 設定 - Mosquitto
- Docker 設定 - Grafana
- Docker 設定 - Nextcloud
- Docker 設定 - Pawns
- Docker 設定 - Ubuntu
- Docker 設定 - RabbitMQ
- Docker - 設定 Python
- Docker - 設定 Java
- Docker - 設定 Redis
- Docker - 設定 Alpine
- Docker - 設定 BusyBox
- Docker 設定 - Traefik
- Docker 設定 - WordPress
- Docker 有用資源
- Docker - 快速指南
- Docker - 有用資源
- Docker - 討論
Docker - 設定 RabbitMQ
RabbitMQ 是一款流行的開源訊息代理,它可以幫助應用程式的不同元件相互通訊。在分散式系統中,當多個服務之間需要非同步通訊時,它特別有用。
在像登臺或生產這樣的多種環境中部署 RabbitMQ 時,網路設定、系統設定和依賴項管理可能難以配置。Docker 透過提供易於部署和控制的一致環境來簡化此過程。
在本章中,我們將逐步瞭解如何使用 Docker 將 RabbitMQ 容器化。
RabbitMQ 容器化的先決條件
在使用 Docker 將 RabbitMQ 容器化之前,請確保您具備以下條件:
- Docker 基礎知識 - 如果你熟悉 Docker 映象、容器和 Docker 檔案,那麼理解起來會更容易。
- RabbitMQ 基礎知識 - 建議您對訊息代理以及 RabbitMQ 在非同步通訊中的作用有一個基本的瞭解。
- Docker 設定完成 - 確保您的計算機已安裝並執行 Docker。它可以在 Docker 官方網站上下載。
- 文字編輯器 - 用於修改檔案,可以使用 Notepad++、VSCode 或 Sublime Text 等文字編輯器。
- 命令列介面 (CLI) - 您應該能夠舒適地使用命令列介面來發出命令。
設定 RabbitMQ 專案
首先,我們將建立一個簡單的本地 RabbitMQ 專案。在驗證一切按預期工作後,我們將繼續將 RabbitMQ 容器化。
步驟 1:建立專案目錄
請務必首先為您的 RabbitMQ 專案建立一個目錄,以保持所有檔案井井有條。Docker 相關元件和配置檔案將位於此資料夾中。
$ mkdir rabbitmq-docker $ cd rabbitmq-docker
步驟 2:為 RabbitMQ 建立配置檔案
可以使用 rabbitmq.conf 檔案自定義 RabbitMQ 設定。在專案目錄中為您的配置檔案建立一個資料夾以進行自定義設定:
$ mkdir config $ touch config/rabbitmq.conf

現在,您可以使用文字編輯器開啟並新增以下設定作為 rabbitmq.conf 檔案的起點:
# Enable RabbitMQ Management Plugin management.tcp.port = 15672 management.load_definitions = /config/definitions.json
此配置檔案指示將從哪裡載入自定義定義以及管理外掛將在哪個埠 (15672) 上可用。
步驟 3:新增 RabbitMQ 定義
您可以使用 JSON 檔案在 RabbitMQ 中預定義使用者、佇列和交換機。在 config 目錄中,建立以下檔案:
$ touch config/definitions.json
您可以在檔案中包含以下定義:
{ "vhosts": [{"name": "/"}], "users": [ { "name": "admin", "password_hash": "hP5sd+9eVPX4gAmx3YJuzCl+FBI=", "hashing_algorithm": "rabbit_password_hashing_sha256", "tags": "administrator" } ], "permissions": [ { "user": "admin", "vhost": "/", "configure": ".*", "write": ".*", "read": ".*" } ] }

這將建立一個具有完全訪問許可權的 admin 使用者和一個預設虛擬主機 (/)。
在本地執行 RabbitMQ
讓我們首先在本地執行 RabbitMQ,以確保在將其容器化之前所有配置都正確。
步驟 1:在本地安裝 RabbitMQ 伺服器
在您的計算機上本地設定 RabbitMQ。安裝命令取決於作業系統。
對於 Ubuntu / Debian -
$ sudo apt-get update $ sudo apt-get install rabbitmq-server
對於 macOS 上的 Homebrew -
$ brew install rabbitmq

步驟 2:啟動 RabbitMQ
安裝完成後,我們可以使用以下命令啟動 RabbitMQ:
$ sudo systemctl start rabbitmq-server
對於 macOS,您可以使用:
$ brew services start rabbitmq

步驟 3:啟用管理外掛
RabbitMQ 的管理外掛提供了一個使用者友好的 Web 介面來跟蹤和控制 RabbitMQ 節點。您可以使用以下命令啟用它。
$ sudo rabbitmq-plugins enable rabbitmq_management

步驟 4:訪問 RabbitMQ 管理儀表板
RabbitMQ 和管理外掛啟動後,啟動瀏覽器並轉到:
https://:15672

您可以使用預設憑據(使用者名稱和密碼均為 guest),但請記住透過定義檔案或 Web 介面更新它們。
建立 Dockerfile
現在 RabbitMQ 在本地工作了,讓我們繼續將其容器化。為此,我們需要建立一個 Dockerfile,它將建立一個包含 RabbitMQ 及其依賴項的 Docker 映象。
步驟 1:建立一個 Dockerfile
在專案目錄中建立一個名為 Dockerfile 的新檔案:
$ touch Dockerfile

步驟 2:定義基礎映象
在 Dockerfile 中,我們將使用 RabbitMQ 基礎映象。您可以使用 Docker Hub 上提供的官方 RabbitMQ 映象。
FROM rabbitmq:3-management
步驟 3:複製配置檔案
RabbitMQ 預計配置檔案位於 /etc/rabbitmq/ 中,定義檔案位於自定義目錄中。
COPY ./config/rabbitmq.conf /etc/rabbitmq/rabbitmq.conf COPY ./config/definitions.json /etc/rabbitmq/definitions.json
為了與外部世界通訊,您必須將 rabbitmq.conf 和 definitions.json 檔案複製到容器內的相應目錄中。
步驟 4:公開必要的埠
為了與 RabbitMQ 通訊,您還需要公開以下埠:
- 5672 - 用於 AMQP 連線。
- 15672 - 用於管理儀表板。
我們可以在您的 Dockerfile 中按如下方式指定這些埠:
EXPOSE 5672 15672
步驟 5:最終的 Dockerfile
# Use the official RabbitMQ image with the management plugin enabled FROM rabbitmq:3-management # Copy configuration and definition files COPY ./config/rabbitmq.conf /etc/rabbitmq/rabbitmq.conf COPY ./config/definitions.json /etc/rabbitmq/definitions.json # Expose RabbitMQ and management ports EXPOSE 5672 15672
構建 RabbitMQ Docker 映象
現在 Dockerfile 已準備就緒,我們可以構建 Docker 映象了。
步驟 1:構建映象
開啟終端,導航到您的專案目錄,並鍵入以下命令:
$ docker build -t my-rabbitmq-image

當我們使用 docker build 命令時,Docker 會根據 Dockerfile 構建一個映象。我們可以使用 -t 選項標記映象,並且構建上下文由當前目錄 (.) 指示。
步驟 2:驗證映象構建
列出您計算機上的每個 Docker 映象將允許您確認映象是否已成功構建:
$ docker images

執行 RabbitMQ Docker 容器
構建 Docker 映象後,讓我們在 Docker 容器中啟動 RabbitMQ。
步驟 1:啟動容器
我們可以使用 Docker run 命令從我們剛剛建立的映象啟動容器。
$ docker run -d -p 5672:5672 -p 15672:15672 --name my-rabbitmq-container my-rabbitmq-image
上述命令執行以下操作
- -d - 容器的獨立模式(後臺執行)。
- -p 5672:5672 - 將 RabbitMQ 的 5672 埠路由到您的本地計算機。
- -p 15672:15672 - 對映管理外掛的 15672 埠。
- --name my-rabbitmq-container - 為容器分配一個名稱。
- my-rabbitmq-image - 指定要執行的映象。

步驟 2:訪問 RabbitMQ 儀表板
容器執行後,您可以透過導航到以下位置訪問 RabbitMQ 的 Web 介面:
https://:15672
結論
在本章中,我們學習瞭如何使用 Docker 將 RabbitMQ 容器化。使用 Docker,我們可以在一個一致的、隔離的環境中執行 RabbitMQ,該環境確保開發和生產之間的可移植性。
使用 Docker,可以輕鬆地擴充套件 RabbitMQ 或將其整合到更大的容器化應用程式堆疊中。
使用 Docker 容器化 RabbitMQ 的常見問題
在本節中,我們收集了一些關於如何使用 Docker 容器化 RabbitMQ 的常見問題,以及它們的答案:
1. 如何在 Docker 中配置 RabbitMQ 以實現高可用性?
可以透過在 Docker 中設定 RabbitMQ 節點的叢集來配置 RabbitMQ 以實現高可用性。使用 Kubernetes 或 Docker Compose 來定義多個 RabbitMQ 容器,每個節點充當叢集的成員。
利用 RabbitMQ 附帶的佇列映象和叢集功能,確保訊息在節點之間複製,以實現容錯和高可用性。
2. 如何監視 Docker 容器中的 RabbitMQ?
要使用其基於 Web 的介面監視 RabbitMQ,請啟用 RabbitMQ 管理外掛。還可以透過公開必要的埠並與監視程式互動來配置 Prometheus 或其他監視工具來跟蹤 RabbitMQ 指標。
建議集中日誌記錄(使用 Docker 日誌記錄驅動程式)以在大型部署中獲得更好的可觀察性。