日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker-compose安裝RabbitMQ及插件操作步驟_docker

作者:失敗的面 ? 更新時間: 2023-03-02 編程語言

準備工作

RabbitMQ默認不帶延遲隊列插件,可以到官網去下載指定版本的插件,并手動安裝到RabbitMQ環境中,在這里我使用的RabbitMQ版本是:

rabbitmq:3.8-management

延遲隊列插件版本是:

rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez

以上版本僅供參考學習,實際使用請自行選擇。

docker-compose腳本

RabbitMQ的docker-compose安裝腳本如下:

version: "3"
services:
    rabbitmq:   
        container_name: myrabbit
        ports:
            - 15672:15672
            - 5672:5672
        restart: always
        volumes:
            - /etc/localtime:/etc/localtime
            - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq
        network_mode: mynetwork
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=123456
        image: myrabbitmq:3.8-management

操作步驟

執行命令

docker-compose -f docker-compose.yml up

需要容器后臺運行的話加個 -d

docker-compose -f docker-compose.yml up -d

然后我們將下載到的插件拷貝到rabbitmq容器的/plugins目錄下

docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez myrabbit:/plugins

進入容器內,啟動我們剛剛添加的插件

docker exec -it myrabbit bash

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

查看插件是否有安裝成功

在容器內執行:

rabbitmq-plugins list

在宿主機中執行這個:

docker exec myrabbit rabbitmq-plugins list

能看到我們新添加的插件就說明成功了

優化搭建步驟

上面的步驟有些麻煩,當我們需要頻繁的搭建RabbitMQ環境的時候就不方便了,所以我們可以優化一下,做一些準備工作,讓后續的容器搭建變得便利。

目的

一鍵創建并啟動RabbitMQ容器,并且附帶延遲隊列插件

思路

在rabbitmq原有鏡像的基礎上,制作新鏡像,在容器啟動之后自行啟用插件

步驟

創建鏡像文件夾:

mkdir image

cd image

編寫Dockerfile文件:

FROM rabbitmq:3.8-management
COPY rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez /plugins
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

上面的內容是依賴于rabbitmq:3.8-management鏡像,并且將當前目錄下的插件文件拷貝到/plugins中,然后執行插件啟用命令

此時image文件夾的目錄結構是這樣的:

- image
    Dockerfile
    rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez

記得把插件準備好

制作鏡像:

docker build -t myrabbitmq:3.8-management .

查看鏡像:

docker images

修改原來的docker-compose腳本,修改鏡像為:

version: "3"
services:
    rabbitmq:   
        container_name: myrabbit
        ports:
            - 15672:15672
            - 5672:5672
        restart: always
        volumes:
            - /etc/localtime:/etc/localtime
            - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq
        network_mode: mynetwork
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=123456
        image: myrabbitmq:3.8-management # 只改了這里,其他都是一樣的

重新啟動即可,由此,我們后面每次搭建新的RabbitMQ環境都不用再手動安裝插件了。

原文鏈接:https://juejin.cn/post/7138717546894589966

欄目分類
最近更新