配置docker镜像加速器
# 编辑Docker配置
sudo vim /etc/docker/daemon.json
# 添加以下内容(使用国内镜像源)
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
# 重启Docker服务
sudo systemctl restart docker
一些常用命令
# 拉取带management插件的3.12版本(推荐)
docker pull rabbitmq:3.12-management
# 新建目录
mkdir -p /var/lib/rabbitmq
# 加权限
chmod 777 /var/lib/rabbitmq
# 运行镜像
docker run -d \
--name rabbitmq \
--hostname ap201 \
-p 5672:5672 \
-p 15672:15672 \
-v rabbitmq_data:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
--restart=unless-stopped \
rabbitmq:3.12-management
# 1. 查看容器是否运行
docker ps | grep rabbitmq
# 等待几秒钟后查看日志
docker logs --tail 30 rabbitmq
# 3. 检查端口监听
sudo netstat -tlnp | grep -E '5672|15672'
# 4. 测试 Web 界面
curl -I http://localhost:15672
添加新用户
# 进入容器
docker exec -it rabbitmq bash
# 查看用户列表及其权限标签(tags)
rabbitmqctl list_users
# 创建新用户,例如用户名为 testadmin,密码为 YourPass
rabbitmqctl add_user testadmin YourPass
# 设置为管理员角色
rabbitmqctl set_user_tags testadmin administrator
# 授予所有权限
rabbitmqctl set_permissions -p / testadmin ".*" ".*" ".*"
# 退出容器
exit
一些常用处理命令
# 停止所有包含rabbitmq的容器
docker stop $(docker ps -a | grep rabbitmq | awk '{print $1}') 2>/dev/null
# 删除所有包含rabbitmq的容器
docker rm $(docker ps -a | grep rabbitmq | awk '{print $1}') 2>/dev/null
# 删除数据卷(会清空所有数据)
docker volume rm rabbitmq_data
# 进入容器查看插件列表
docker exec -it rabbitmq bash
# 列出所有已启用的插件
rabbitmq-plugins list -e
# 你应该能看到类似输出:
# [E*] rabbitmq_management 3.x.x
# [E*] rabbitmq_management_agent 3.x.x
# [E*] rabbitmq_web_dispatch 3.x.x
# 在现有容器中启用管理插件
# 进入容器
docker exec -it rabbitmq bash
# 启用管理插件
rabbitmq-plugins enable rabbitmq_management
# 退出容器
exit
# 重启容器使配置生效
docker restart rabbitmq
# 等待几秒钟后查看日志
docker logs --tail 30 rabbitmq
# 查看日志,确认插件加载成功
docker logs rabbitmq | grep -A 5 "Management plugin"
# 应该看到类似:
# Starting RabbitMQ 3.x.x on Erlang 25.x
# Management plugin: HTTP (non-TLS) listener started on port 15672
# Completed with plugins: [rabbitmq_management...]
验证安装是否成功
# 1. 检查镜像版本
docker images | grep rabbitmq
# 应该显示 rabbitmq 3.12-management 或 rabbitmq 3.12
# 2. 检查容器状态
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | grep rabbitmq
# 应该显示 Up 状态
# 3. 检查端口监听
sudo netstat -tlnp | grep -E '5672|15672'
# 4. 测试Web界面
curl -I http://localhost:15672 2>/dev/null | head -n 1
# 应该返回 HTTP/1.1 200 OK 或 302 Found