RabbitMQ ================================================== .. toctree:: :maxdepth: 2 :caption: 目录: 安装 详解一 开发 Plugins ---------------------------------------- #. Management Plugin 参考链接 ---------------------------------------- https://www.cnblogs.com/ysocean/p/9251884.html docker构建admin ---------------------------------------- Dockerfile: .. code-block:: Dockerfile FROM rabbitmq:3.12-management # 设置 rabbitmqadmin 目录 WORKDIR /root/ # 安装 curl 和 wait-for-it 脚本(用于等待 15672 端口就绪) RUN apt-get update && apt-get install -y curl netcat \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 复制等待脚本 COPY wait-for-it.sh /usr/local/bin/wait-for-it RUN chmod +x /usr/local/bin/wait-for-it # 复制启动脚本 COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh # 覆盖默认 entrypoint ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["rabbitmq-server"] docker-entrypoint.sh: .. code-block:: Dockerfile #!/usr/bin/env bash set -e # 启动 RabbitMQ 作为后台进程 rabbitmq-server & # 记录 RabbitMQ 进程 ID RABBITMQ_PID=$! # 等待 RabbitMQ 管理界面启动 /usr/local/bin/wait-for-it localhost 15672 60 # 下载 rabbitmqadmin curl -o /usr/local/bin/rabbitmqadmin http://localhost:15672/cli/rabbitmqadmin chmod +x /usr/local/bin/rabbitmqadmin # 等待 RabbitMQ 进程 wait "$RABBITMQ_PID" docker-entrypoint.sh: .. code-block:: Dockerfile #!/usr/bin/env bash set -e # 启动 RabbitMQ 作为后台进程 rabbitmq-server & # 记录 RabbitMQ 进程 ID RABBITMQ_PID=$! # 等待 RabbitMQ 管理界面启动 /usr/local/bin/wait-for-it localhost 15672 60 # 下载 rabbitmqadmin curl -o /usr/local/bin/rabbitmqadmin http://localhost:15672/cli/rabbitmqadmin chmod +x /usr/local/bin/rabbitmqadmin # 等待 RabbitMQ 进程 wait "$RABBITMQ_PID" chenjie@chenjie:~/work/docker/rabbitmqadmin$ cat wait-for-it.sh #!/usr/bin/env bash # 用于等待 RabbitMQ 管理界面端口就绪 HOST="$1" PORT="$2" TIMEOUT="${3:-30}" # 默认超时时间 30s echo "Waiting for $HOST:$PORT to be available..." for i in $(seq $TIMEOUT); do if nc -z "$HOST" "$PORT"; then echo "$HOST:$PORT is available!" exit 0 fi sleep 1 done echo "Timeout waiting for $HOST:$PORT" exit 1 .. code-block:: bash docker build -t my-rabbitmq:latest . docker run -d --name my-rabbitmq -p 5672:5672 -p 15672:15672 my-rabbitmq:latest 现在可以利用rabbitmqadmin来管理rabbitmq了。 前提要开启15672端口,默认是关闭的。 .. code-block:: bash rabbitmqadmin --host=172.16.100.96 --port=15672 --username=xx --password=xx list queues rabbitmqadmin --host=172.16.100.96 --port=5672 \ --username=xx --password=xx --vhost="/" \ declare queue name=xxx durable=true arguments='{"x-message-ttl":60000}' 如果想基于amqp去管理,只能老老实实的连接5672端口,然后去管理。