1. 查找镜像:(management 版本的镜像才有管理界面)
代码语言:javascript复制docker search rabbitmq:management
2. 拉取镜像:
代码语言:javascript复制docker pull docker.io/macintoshplus/rabbitmq-management
3. 查看已下载的镜像,最后一个就是。
4. 重命名该镜像为 rabbitmq。这一步可以不作,我只是喜欢简短的名字。
镜像重命名见文章 : Docker 镜像 重命名
此时镜像已更名为 rabbitmq:
5. 启动容器:
代码语言:javascript复制 docker run -d --hostname jiangyu-rabbit --name rabbitmq -e RABBITMQ_DEFAULT_USER=jiangyu -e RABBITMQ_DEFAULT_PASS=loveU -p 15672:15672 rabbitmq
参数说明:
代码语言:javascript复制# 后台运行
-d
# 设置主机名
--hostname jiangyu-rabbit
# 给容器取名为 rabbitmq
--name rabbitmq
# rabbitmq 账号设置为 jiangyu
-e RABBITMQ_DEFAULT_USER=jiangyu
# rabbitmq 密码设置为 loveU
-e RABBITMQ_DEFAULT_PASS=loveU
# 端口映射,格式为 浏览器访问端口:容器端口
-p 15672:15672
# 最后这个是启动容器使用的镜像,镜像名或镜像ID都可
rabbitmq
查看容器运行日志:
代码语言:javascript复制docker logs rabbitmq
6. 浏览器访问:http://ergouzi.fun:15672 (我的服务器已经备案域名,可直接使用域名访问)
7. 输入账号 jiangyu 密码 loveU 登陆成功:
至此,安装运行已经 OK 了。
8. 查看 权限。
PS:在网上看到可用此命令授权:
代码语言:javascript复制rabbitmqctl set_permissions -p / jiangyu ".*" ".*" ".*"
关于授权更多见 rabbitmq 文档:https://www.rabbitmq.com/access-control.html
但我并没有用执行这一条命令,查看已经有权限了:
9. 运行成功后,在项目中却连接不上,报错:
代码语言:javascript复制An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_45]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_45]
...
解决方法见文章 :解决:c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured
PS:更多详情见 docker 文档:https://hub.docker.com/_/rabbitmq/