开发环境部署
约 628 字大约 2 分钟
2025-11-04
部署mysql
version: '3.1'
services:
mysql-master:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/mysql:8.4.6
environment:
MYSQL_ROOT_PASSWORD: masterpassword
MYSQL_DATABASE: mydb
ports:
- "3306:3306"
#如果要挂载目录文件请释放开此配置 如果使用阿里云会报错请注释此内容
# volumes:
# - ./mysql:/var/lib/mysql
command: --server-id=1 --log-bin=mysql-bin --binlog-format=ROW --default-authentication-plugin=mysql_native_password
mysql-slave:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/mysql:8.4.6
environment:
MYSQL_ROOT_PASSWORD: slavepassword
MYSQL_DATABASE: mydb
ports:
- "3307:3306"
#如果要挂载目录文件请释放开此配置如果使用阿里云会报错请注释此内容
# volumes:
# - ./mysqls:/var/lib/mysql
command: --server-id=2 --default-authentication-plugin=mysql_native_password
depends_on:
- mysql-master
setup-master-slave:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/mysql:8.4.6
environment:
MYSQL_ROOT_PASSWORD: masterpassword
depends_on:
- mysql-master
- mysql-slave
command: >
bash -c "
echo 'Setting up master-slave replication...';
sleep 300;
MYSQL_PWD=masterpassword mysql -h mysql-master -uroot -e '
CREATE USER \"replica\"@\"%\" IDENTIFIED WITH mysql_native_password BY \"replicapassword\";
GRANT REPLICATION SLAVE ON *.* TO \"replica\"@\"%\";
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS\G' > master_status;
MASTER_LOG_FILE=\$$(cat master_status | grep File: | awk '{print \$$2}');
MASTER_LOG_POS=\$$(cat master_status | grep Position: | awk '{print \$$2}');
MYSQL_PWD=slavepassword mysql -h mysql-slave -uroot -e '
CHANGE MASTER TO MASTER_HOST=\"mysql-master\", MASTER_USER=\"replica\", MASTER_PASSWORD=\"replicapassword\", MASTER_LOG_FILE='\$$MASTER_LOG_FILE', MASTER_LOG_POS='\$$MASTER_LOG_POS';
START SLAVE;';
echo 'Replication setup complete.';
"部署reids集群
version: '2.2'
services:
redis-node1:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-1'
command: redis-server --port 7000 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7000:7000"
- "17000:17000"
volumes:
- ./data/node1:/data
networks:
- redis-cluster
redis-node2:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-2'
command: redis-server --port 7001 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7001:7001"
- "17001:17001"
volumes:
- ./data/node2:/data
networks:
- redis-cluster
redis-node3:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-3'
command: redis-server --port 7002 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7002:7002"
- "17002:17002"
volumes:
- ./data/node3:/data
networks:
- redis-cluster
redis-node4:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-4'
command: redis-server --port 7003 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7003:7003"
- "17003:17003"
volumes:
- ./data/node4:/data
networks:
- redis-cluster
redis-node5:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-5'
command: redis-server --port 7004 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7004:7004"
- "17004:17004"
volumes:
- ./data/node5:/data
networks:
- redis-cluster
redis-node6:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/redis:7.4.5
container_name: 'redis-node-6'
command: redis-server --port 7005 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --requirepass foobared --masterauth foobared --cluster-announce-ip 192.168.3.237
ports:
- "7005:7005"
- "17005:17005"
volumes:
- ./data/node6:/data
networks:
- redis-cluster
networks:
redis-cluster:随便进入一个容器
docker exec -it redis-node-1 /bin/bash在容器里执行如下命令
redis-cli -a foobared --cluster create --cluster-replicas 1 192.168.3.237:7000 192.168.3.237:7001 192.168.3.237:7002 192.168.3.237:7003 192.168.3.237:7004 192.168.3.237:7005部署rocketmq
version: '2.2'
services:
namesrv:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq:5.3.3
container_name: rocketmq-namesrv
ports:
- "9876:9876"
command: "sh mqnamesrv"
broker:
image: registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq:5.3.3
container_name: rocketmq-broker
environment:
- NAMESRV_ADDR=namesrv:9876
ports:
- "10911:10911"
- "10909:10909"
depends_on:
- namesrv
command: "sh mqbroker -n namesrv:9876"