docker快速部署一套中间件环境,手把手教程!!
最近有个交付的同学找到我,最近有个外部实施项目,想要在本地部署一套演示环境,但是中间件部署遇到了一些问题。
了解了一下,他目前还是采用常规的传统方式部署,环境问题就搞了很久。
于是根据他的需要,给他整了一个一键部署的脚本,顺带整理了这篇文章,和大家分享。
因为这个需求的特殊,要求快速搭建,而且非生产环境,所以中间件决定采用docker部署,而又是多个中间件需要部署,所以直接整了一个docker-compose方式
下面为需要部署的中间件及版本
服务名称 | 英文名 | 端口号 | 版本号 | 服务类别 |
---|---|---|---|---|
数据库 | mysql | 3306 | 8 | 中间件 |
缓存 | redis | 6379 | 6.2 | 中间件 |
配置服务中心 | nacos | 8848 | 2.0.2 | 中间件 |
消息队列 | rabbitmq | 5672 | 3.8.4 | 中间件 |
下面是具体的compose配置文件,有几点需要注意
1.所有中间件都是开启认证的,示例为弱密码
2.采用支持hostname方式,方便调用
3.数据均会在本地持久化
4.会配置统一的网络区域
具体配置文件
redis
version: '3'
services:
redis:
image: redis:6.2
container_name: yyredis
restart: always
environment:
TZ: Asia/Shanghai
ports:
- "6379:6379"
command: redis-server --requirepass 123456
networks:
- yynetwork
volumes:
- ./redisdata:/data # 持久化
networks:
yynetwork:
nacos
nacos 需要依赖mysql环境,如果采用官方默认方式
会以内嵌的derby库作为数据存储,不是很建议!!
version: '3'
services:
nacos:
image: nacos/nacos-server:v2.2.0
container_name: yynacos
depends_on:
- mysql
ports:
- "8848:8848"
- "9848:9848"
restart: always
volumes:
- ./nacosdata:/home/nacos/data
environment:
- MODE=standalone # 单节点模式启动
- PREFER_HOST_MODE=hostname # 支持 hostname
- TZ=Asia/Shanghai # 控制时区
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
networks:
- yynetwork # 指定网络
networks:
yynetwork:
rabbitmq
version: '3'
services:
rabbitmq:
image: rabbitmq:3.8.4-management # 支持管理面板的消息队列
container_name: yyrabbitmq
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672" # RabbitMQ Dashboard 端口
volumes:
- ./rabbitmqdata:/var/lib/rabbitmq # 持久化
networks:
- yynetwork
networks:
yynetwork:
mysql
version: '3'
services:
mysql:
image: mysql:8.0
container_name: yymysql
environment:
PREFER_HOST_MODE: hostname
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: nacos
TZ: Asia/Shanghai
volumes:
- ./data:/var/lib/mysql # 数据缓存到本地
- ./init:/docker-entrypoint-initdb.d # 数据初始化脚本目录
ports:
- 3306:3306
restart: always
networks:
- yynetwork # 指定网络
networks:
yynetwork:
整体compose配置文件
终端启动
docker-compose -f .hlwyy.yaml up -d
#cat hlwyy.yaml
version: '3'
services:
mysql:
image: mysql:8.0
container_name: yymysql
environment:
PREFER_HOST_MODE: hostname
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: nacos
TZ: Asia/Shanghai
volumes:
- ./data:/var/lib/mysql # 数据缓存到本地
- ./init:/docker-entrypoint-initdb.d # 数据初始化脚本目录
ports:
- 3306:3306
restart: always
networks:
- yynetwork # 指定网络
nacos:
image: nacos/nacos-server:v2.2.0
container_name: yynacos
depends_on:
- mysql
ports:
- "8848:8848"
- "9848:9848"
restart: always
volumes:
- ./nacosdata:/home/nacos/data
environment:
- MODE=standalone # 单节点模式启动
- PREFER_HOST_MODE=hostname # 支持 hostname
- TZ=Asia/Shanghai # 控制时区
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
networks:
- yynetwork # 指定网络
rabbitmq:
image: rabbitmq:3.8.4-management # 支持管理面板的消息队列
container_name: yyrabbitmq
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672" # RabbitMQ Dashboard 端口
volumes:
- ./rabbitmqdata:/var/lib/rabbitmq # 持久化
networks:
- yynetwork
redis:
image: redis:6.2
container_name: yyredis
restart: always
environment:
TZ: Asia/Shanghai
ports:
- "6379:6379"
command: redis-server --requirepass 123456
networks:
- yynetwork
volumes:
- ./redisdata:/data # 持久化
networks:
yynetwork:
部分工具推荐
docker desktop
dockge
如果是linux环境,可以部署dockge,是一个不错的管理docker-compose环境的工具
© 版权声明
文章版权归作者所有,未经允许请勿转载。