配置目录
- rocketmq
- redis
- mysql
- 不配置binlog
- 配置binlog
- Nacos
- zookeeper
本文为精简安装,部分不带容器卷映射,仅供以学习使用。
rocketmq
- nameservice
docker run -d -p 9876:9876 --name rmqnamesrv rocketmqinc/rocketmq sh mqnamesrv
- broker
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
修改broker.conf
#进入容器
docker exec -it 8492ebf39870a455ba8f5e2715a373b6643144c6896ac8913ccdbf87e8cf2282 /bin/sh
vi /opt/rocketmq-4.4.0/conf/broker.conf
添加: brokerIP1 = 本机外网ip地址
//重启容器
docker container restart 8492ebf39870a455ba8f5e2715a373b6643144c6896ac8913ccdbf87e8cf2282
- mqconsole
注意这里的IP应该为主机的外网IP。
docker run -d --name rmqconsole -e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.3.89.152:9876 -Dcom.rocke
tmq.sendMessageWithVIPChannel=false" -p 8088:8080 -t styletang/rocketmq-console-ng
配置完成后访问 http://localhost:8088/#/ 即可看到管理界面。
redis
docker run -p 6379:6379 --name redis -d redis redis-server --requirepass "123456"
mysql
mysql配置较为繁琐,如果不需要开启binlog可以直接运行第一个。
不配置binlog
docker run \
--name mysql \
-d \
-p 3306:3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
配置binlog
- 从容器中获取mysqld.cnf文件
docker run --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.36
# /home/yi/mysql/conf 是本地目录,没有的话需要创建
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /home/yi/mysql/conf
- 配置开启binlog
#在/home/yi/mysql/conf/mysqld.cnf中添加:
# 配置文件中添加如下内容,注意是在在[mysqld]目录中
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server-id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
- 以配置文件启动容器
这里conf、log、data目录都需要自己创建
#删除mysql容器
docker rm -f mysql
#创建mysql容器
docker run --name mysql \
-p 3306:3306 \
-v /etc/localtime:/etc/localtime \
-v /home/yi/mysql/conf:/etc/mysql/mysql.conf.d \
-v /home/yi/mysql/log:/var/log/mysql \
-v /home/yi/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.36
- 可选项
#可选项 授权root账号所有IP能够访问
# 使用 MySQL 容器中的命令行
docker exec -it mysql /bin/bash
# 使用 MySQL 命令打开客户端:
mysql -uroot -p123456 --default-character-set=utf8
# 接着创建一个账户,该账号所有 IP 都能够访问
grant all privileges on *.* to 'root' @'%' identified by 'root';
# 刷新生效
FLUSH PRIVILEGES;
# 查看 binlog 日志是否开启
show variables like 'log_%';
# 查看主结点当前状态
show master status;
Nacos
docker run \
-d -p 8848:8848 \
-p 9848:9848 \
--name nacos2 \
-e MODE=standalone \
-e TIME_ZONE='Asia/Shanghai' \
nacos/nacos-server:v2.1.1
访问:http://localhost:8848/nacos/ 即可进入管理界面
zookeeper
docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v /home/yi/zookeeper:/data --name zookeeper zookeeper
验证安装:
#进入容器
docker exec -it zookeeper bash //只登录容器,不登录 zkCli
./bin/zkCli.sh //执行脚本新建一个Client,即进入容器
create /test //创建test节点
ls / //查找当前创造的节点[test, zookeeper]