Docker-compose常用软件部署(mysql、redis、rabbitmq)
Docker-compose常用软件部署(mysql、redis、rabbitmq)
废话不多说,下面就直接给出部署文件已经启动脚本,这个会持续更新。以下的部署方式均是单例部署。高可用或者其他部署方案我会单独写相应的文章。
- mysql数据库
- redis缓存
- rabbitmq消息队列
compose-mysql.yaml
version: '3'
# docker network create mysql_bridge
networks:
mysql_bridge:
driver: bridge
services:
mysql-server:
image: docker.io/mysql:5.7
container_name: mysql-server
restart: always
environment:
# 指定root密码。不指定则会启动失败
- MYSQL_ROOT_PASSWORD:123456
volumes:
# 同步本地时间
- /etc/localtime:/etc/localtime:ro
# 初始化执行的sql
# - ./init:/docker-entrypoint-initdb.d/
# db配置
- ./conf/my.cnf:/etc/my.cnf
# db文件存放地址
- ./db_data:/var/lib/mysql
ports:
- 3306:3306
networks:
- mysql_bridge
start-mysql.sh
#! /usr/bin/bash
# 定义一个名称变量
network_name="mysql_bridge"
filterName=`docker network ls | grep $network_name | awk '{ print $2 }'`
if [ "$filterName" == "" ]; then
# 不存在就创建
docker network create $network_name
echo "Created network $network_name success!!"
fi
docker-compose -f ./compose-mysql.yaml up -d
docker ps -a
docker logs -f mysql-server
compose-redis.yaml
version: '3'
# docker network create redis_bridge
networks:
redis_bridge:
driver: bridge
services:
redis-server:
image: docker.io/redis:latest
container_name: redis-server
restart: always
command: redis-server --requirepass "123456"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./redis_data:/var/lib/redis
ports:
- 6379:6379
networks:
- redis_bridge
start-redis.sh
#! /usr/bin/bash
# 定义一个名称变量
network_name="redis_bridge"
filterName=`docker network ls | grep $network_name | awk '{ print $2 }'`
if [ "$filterName" == "" ]; then
# 不存在就创建
docker network create $network_name
echo "Created network $network_name success!!"
fi
docker-compose -f ./compose-redis.yaml up -d
docker ps -a
docker logs -f redis-server
compose-rabbitmq.yaml
version: '3'
# docker network create rabbitmq_bridge
networks:
rabbitmq_bridge:
driver: bridge
services:
rabbitmq:
image: rabbitmq:management-alpine
container_name: rabbitmq-server
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/var/lib/rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=ming
- RABBITMQ_DEFAULT_PASS=ming123456
ports:
- "15672:15672"
- "5672:5672"
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
networks:
- rabbitmq_bridge
start-rabbitmq.sh
#! /usr/bin/bash
# 定义一个名称变量
network_name="rabbitmq_bridge"
filterName=`docker network ls | grep $network_name | awk '{ print $2 }'`
if [ "$filterName" == "" ]; then
# 不存在就创建
docker network create $network_name
echo "Created network $network_name success!!"
fi
docker-compose -f ./compose-rabbitmq.yaml up -d
docker ps -a
docker logs -f rabbitmq-server
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)