# 拉取镜像
$ docker pull seffeng/rabbitmq
# 运行
$ docker run --name rabbitmq-test -d -p 5672:5672 -p 15672:15672 -v <data-dir>:/opt/websrv/data/rabbitmq -v <tmp-dir>:/opt/websrv/tmp -v <log-dir>:/opt/websrv/logs seffeng/rabbitmq
# 例子:
$ docker run --name rabbitmq-alias1 -d -p 5672:5672 -p 15672:15672 -v /opt/websrv/data/rabbitmq/rabbitmq-alias1:/opt/websrv/data/rabbitmq -v /opt/websrv/tmp:/opt/websrv/tmp -v /opt/websrv/logs/rabbitmq:/opt/websrv/logs seffeng/rabbitmq
# 查看正在运行的容器
$ docker ps
# 停止
$ docker stop [CONTAINER ID | NAMES]
# 启动
$ docker start [CONTAINER ID | NAMES]
# 进入终端
$ docker exec -it [CONTAINER ID | NAMES] sh
# 删除容器
$ docker rm [CONTAINER ID | NAMES]
# 镜像列表查看
$ docker images
# 删除镜像
$ docker rmi [IMAGE ID]
1、官方网站
2、操作命令参考
# 建议容器之间使用网络互通
## 1、添加网络[已存在则跳过此步骤]
$ docker network create network-01
## 运行容器增加 --network network-01 --network-alias [name-net-alias]
$ docker run --name rabbitmq-alias1 --hostname rabbitmq-alias1 --network network-01 --network-alias rabbitmq-net1 -d -p 5672:5672 -p 15672:15672 -v /opt/websrv/data/rabbitmq/rabbitmq-alias1:/opt/websrv/data/rabbitmq -v /opt/websrv/tmp:/opt/websrv/tmp -v /opt/websrv/logs/rabbitmq:/opt/websrv/logs seffeng/rabbitmq
# 登入容器创建新用户
$ docker exec -it rabbitmq-alias1 sh
## 创建新用户
$ rabbitmqctl add_user {username} {password}
## 设置新用户权限
$ rabbitmqctl set_permissions -p / {username} ".*" ".*" ".*"
$ rabbitmqctl set_user_tags {username} administrator
# 集群配置
## 1、新增 RabbitMQ 节点
$ docker run --name rabbitmq-alias2 --hostname rabbitmq-alias2 --network network-01 --network-alias rabbitmq-net2 -d -v /opt/websrv/data/rabbitmq/rabbitmq-alias2:/opt/websrv/data/rabbitmq -v /opt/websrv/tmp:/opt/websrv/tmp -v /opt/websrv/logs/rabbitmq:/opt/websrv/logs seffeng/rabbitmq
## 2、修改 cookie 文件与 rabbitmq-alias1 一致,查看 rabbitmq-alias1 的cookie
$ docker exec -it rabbitmq-alias2 sh
$ echo "rabbitmq-alias1.cookie" > /root/.erlang.cookie
### 退出容器 rabbitmq-alias2,重启 rabbitmq-server 服务
$ docker restart rabbitmq-alias2
## 3、增加节点,登入容器 rabbitmq-alias2
$ docker exec -it rabbitmq-alias2 sh
$ rabbitmqctl stop_app
$ rabbitmqctl join_cluster rabbit@rabbitmq-alias1
$ rabbitmqctl start_app
## 4、设置 policy,任意一个节点执行均可
$ rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
## 注意:各节点 hostname 需能正常通讯(ping 通),如果使用非容器名,请增加容器 hosts 配置
Content type
Image
Digest
sha256:db9a3e0dc…
Size
53.7 MB
Last updated
over 2 years ago
docker pull seffeng/rabbitmq