version: '3.8'
services:
namesrv:
image: apache/rocketmq:4.9.6
container_name: rmqnamesrv
ports:
- 9876:9876
networks:
- rocketmq
command: sh mqnamesrv
broker:
image: apache/rocketmq:4.9.6
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
volumes:
- ./broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
depends_on:
- namesrv
networks:
- rocketmq
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
networks:
rocketmq:
driver: bridge
docker 默认会创建 bridge链接方式的rocketmq局域网
起用dashborad
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
指定局域网类型
docker run -d --name rocketmq-dashboard \
--network rocketmq_rocketmq \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" \
-p 8080:8080 \
-t apacherocketmq/rocketmq-dashboard:latest
ps:docker在同一个network方式下rocketmq下面可以通过容器名称直接访问
查看docker创建那些network
要查看 Docker 中已创建的网络,可以使用以下命令:
bash
docker network ls
这条命令会列出所有当前存在的 Docker 网络。如果你想要查看关于特定网络的详细信息,可以运行:
bash
docker network inspect <network_id_or_name>
例如,如果你想查看名为 rocketmq 的网络的详细信息,可以执行:
bash
docker network inspect rocketmq
这将显示有关该网络的详细配置信息,包括网络的驱动程序、子网范围、分配给容器的 IP 地址等。
指定容器name访问
docker run -d --name rocketmq-dashboard \
--network rocketmq_rocketmq \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" \
-p 8888:8080 \
-t apacherocketmq/rocketmq-dashboard:latest