RabbitMQ Docker-Compose部署
| 系统 | 架构 | IP | 主机 | 内核 | Docker Compose version |
|---|---|---|---|---|---|
| Anolis OS(8.6) | x86_64 | 172.16.5.81 | node1 | 4.19.91-26 | v2.34.0 |
| Anolis OS(8.6) | x86_64 | 172.16.5.82 | node2 | 4.19.91-26 | v2.34.0 |
| Anolis OS(8.6) | x86_64 | 172.16.5.83 | node3 | 4.19.91-26 | v2.34.0 |
# 1. 镜像获取
# 拉取镜像
docker pull rabbitmq:3.8.9-management
# 查看镜像
docker images|grep rabbitmq
1
2
3
4
5
2
3
4
5
# 2. 服务部署
# 2.1 node1
# 创建目录
mkdir -p /opt/data/rabbitmq/{data,logs}
mkdir -p /opt/data/rabbitmq/config/rabbitmq
# 创建脚本
cat > /opt/data/rabbitmq.sh <<EOF
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
EOF
# 配置插件开启
cat > /opt/data/rabbitmq/config/rabbitmq/enabled_plugins << EOF
[rabbitmq_management,rabbitmq_stomp,rabbitmq_web_stomp,rabbitmq_web_stomp_examples,rabbitmq_prometheus].
EOF
# 编写配置docker-dompose文件
cat>/opt/data/rabbitmq/rabbitmq-compose.yaml<<EOF
version: '3'
services:
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.8.9-management
restart: always
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15672:15672"
- "25672:25672"
- "61613:61613"
- "15674:15674"
environment:
TZ: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: iweru238roseire
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin_123
RABBITMQ_DEFAULT_VHOST: jiangjiang
hostname: rabbitmq1
extra_hosts:
- "rabbitmq1:172.16.5.81"
- "rabbitmq2:172.16.5.82"
- "rabbitmq3:172.16.5.83"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/data/rabbitmq/data:/var/lib/rabbitmq/mnesia
- /opt/data/rabbitmq/logs:/var/log/rabbitmq
- /opt/data/rabbitmq.sh:/home/rabbitmq.sh
- /opt/data/rabbitmq/config/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins
EOF
# 启动服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml up -d
# 关闭服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml down
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 2.2 node2
# 创建目录
mkdir -p /opt/data/rabbitmq/{data,logs}
mkdir -p /opt/data/rabbitmq/config/rabbitmq
# 创建脚本
cat > /opt/data/rabbitmq.sh <<EOF
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
EOF
# 配置插件开启
cat > /opt/data/rabbitmq/config/rabbitmq/enabled_plugins << EOF
[rabbitmq_management,rabbitmq_stomp,rabbitmq_web_stomp,rabbitmq_web_stomp_examples,rabbitmq_prometheus].
EOF
# 编写配置docker-dompose文件
cat>/opt/data/rabbitmq/rabbitmq-compose.yaml<<EOF
version: '3'
services:
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.8.9-management
restart: always
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15672:15672"
- "25672:25672"
- "61613:61613"
- "15674:15674"
environment:
TZ: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: iweru238roseire
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin_123
RABBITMQ_DEFAULT_VHOST: jiangjiang
hostname: rabbitmq1
extra_hosts:
- "rabbitmq1:172.16.5.81"
- "rabbitmq2:172.16.5.82"
- "rabbitmq3:172.16.5.83"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/data/rabbitmq/data:/var/lib/rabbitmq/mnesia
- /opt/data/rabbitmq/logs:/var/log/rabbitmq
- /opt/data/rabbitmq.sh:/home/rabbitmq.sh
- /opt/data/rabbitmq/config/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins
EOF
# 启动服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml up -d
# 关闭服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml down
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 2.3 node3
# 创建目录
mkdir -p /opt/data/rabbitmq/{data,logs}
mkdir -p /opt/data/rabbitmq/config/rabbitmq
# 创建脚本
cat > /opt/data/rabbitmq.sh <<EOF
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
EOF
# 配置插件开启
cat > /opt/data/rabbitmq/config/rabbitmq/enabled_plugins << EOF
[rabbitmq_management,rabbitmq_stomp,rabbitmq_web_stomp,rabbitmq_web_stomp_examples,rabbitmq_prometheus].
EOF
# 编写配置docker-dompose文件
cat>/opt/data/rabbitmq/rabbitmq-compose.yaml<<EOF
version: '3'
services:
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.8.9-management
restart: always
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15672:15672"
- "25672:25672"
- "61613:61613"
- "15674:15674"
environment:
TZ: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: iweru238roseire
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin_123
RABBITMQ_DEFAULT_VHOST: jiangjiang
hostname: rabbitmq1
extra_hosts:
- "rabbitmq1:172.16.5.81"
- "rabbitmq2:172.16.5.82"
- "rabbitmq3:172.16.5.83"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/data/rabbitmq/data:/var/lib/rabbitmq/mnesia
- /opt/data/rabbitmq/logs:/var/log/rabbitmq
- /opt/data/rabbitmq.sh:/home/rabbitmq.sh
- /opt/data/rabbitmq/config/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins
EOF
# 启动服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml up -d
# 关闭服务
docker-compose -f /opt/data/rabbitmq/rabbitmq-compose.yaml down
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 2.4 查看日志
docker logs -f rabbitmq
1
# 2.5 验证端口
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:61613 0.0.0.0:* LISTEN 266302/docker-proxy
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 266210/docker-proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1037/sshd
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 266255/docker-proxy
tcp 0 0 0.0.0.0:15674 0.0.0.0:* LISTEN 266271/docker-proxy
tcp 0 0 0.0.0.0:5671 0.0.0.0:* LISTEN 266227/docker-proxy
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 266285/docker-proxy
tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN 266241/docker-proxy
tcp6 0 0 :::61613 :::* LISTEN 266309/docker-proxy
tcp6 0 0 :::4369 :::* LISTEN 266217/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1037/sshd
tcp6 0 0 :::15672 :::* LISTEN 266264/docker-proxy
tcp6 0 0 :::15674 :::* LISTEN 266277/docker-proxy
tcp6 0 0 :::5671 :::* LISTEN 266235/docker-proxy
tcp6 0 0 :::25672 :::* LISTEN 266294/docker-proxy
tcp6 0 0 :::5672 :::* LISTEN 266248/docker-proxy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 3. 加入集群
# node2
[root@node2 rabbitmq]# docker exec -it rabbitmq sh /home/rabbitmq.sh
# node3
[root@node3 rabbitmq]# docker exec -it rabbitmq sh /home/rabbitmq.sh
1
2
3
4
5
2
3
4
5
# 4.开启镜像-节点依次执行
docker exec -it rabbitmq rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' --vhost jiangjiang
1
# 5. HTTP访问
IP:15672
user: admin
pass: admin_123
1
2
3
2
3
上次更新: 2026/05/31, 03:30:34