在安装目录创建 docker-compose.yml 文件,贴入如下脚本。
- services:
-
- namesrv:
-
- image: apacherocketmq/rocketmq:4.6.0
-
- container_name: rmqnamesrv
-
- ports:
-
- - 9876:9876
-
- volumes:
-
- - /Users/hdfs/local_env/docker/rockmq/namesrv/logs:/home/rocketmq/logs
-
- command: sh mqnamesrv
-
- broker:
-
- image: apacherocketmq/rocketmq:4.6.0
-
- container_name: rmqbroker
-
- ports:
-
- - 10909:10909
-
- - 10911:10911
-
- - 10912:10912
-
- volumes:
-
- - /Users/hdfs/local_env/docker/rockmq/broker/logs:/home/rocketmq/logs
-
- - /Users/hdfs/local_env/docker/rockmq/broker/store:/home/rocketmq/store
-
- - /Users/hdfs/local_env/docker/rockmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.6.0/conf/broker.conf
-
- environment:
-
- NAMESRV_ADDR: "namesrv:9876"
-
- JAVA_OPTS: " -Duser.home=/opt"
-
- JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
-
- command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
-
- depends_on:
-
- - namesrv
-
- rmqconsole:
-
- image: styletang/rocketmq-console-ng
-
- container_name: rmqconsole
-
- ports:
-
- - 18080:8080
-
- environment:
-
- JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
-
- depends_on:
-
- - namesrv
-
-
- # zk服务
- zk_server:
-
- image: zookeeper:3.4.9
-
- container_name: zk_server
-
- hostname: zk_host
-
- ports:
- - 2181:2181
-
-
- # redis服务
- myredis:
-
- container_name: myredis
-
- image: redis:4.0
-
- ports:
-
- - 6379:6379
-
- privileged: true
-
- command: redis-server /etc/redis/redis.conf --appendonly yes
-
- volumes:
-
- - /Users/hdfs/local_env/docker/redis/data:/data
- - /Users/hdfs/local_env/docker/redis/conf/redis.conf:/etc/redis/redis.conf
按照你的安装目录
创建 rockmq/namesrv/logs 目录(空目录),比如目录:
/Users/hdfs/local_env/docker/rockmq/namesrv/logs
创建 rockmq/broker/logs 目录(空目录)、
创建rockmq/broker/store目录(空目录)、
创建rockmq/broker/conf目录、
其配置文件broker.conf内容如下:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1=192.xx.xx.xx (填写自己的IP地址)
创建redis/data目录(空目录)、
创建redis/conf目录、
其配置文件redis.conf内容如下:
# 开启保护
protected-mode yes
# 开启远程连接
# bind 127.0.0.1
requirepass (你的redis密码 )
port 6379
timeout 0
# 900s内至少一次写操作则执行bgsave进行RDB持久化
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
docker-compose up -d --build
这个时候可以排查自己的hostname 是否配置了本地域名,
使用 vim /etc/hosts 查看,我自己的 hostname 如:

可得知hostname是:MacBook-Pro.local
因此配置到对应的 /etc/hosts 内,并重启对应的服务即可,正常启动服务!

重启服务即可解决。