yml
复制代码
version: '3.8'
services:
mysql:
image: mysql:5.7.43
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
ports:
- "3306:3306"
volumes:
- /opt/docker/mysql/config/my.cnf:/etc/mysql/conf.d/my.cnf
- /opt/docker/mysql/data:/var/lib/mysql
- /opt/docker/mysql/logs:/var/log/mysql
- /etc/localtime:/etc/localtime:ro # 映射时间文件
- /etc/timezone:/etc/timezone:ro # 映射时区描述文件
restart: always
# my.cnf
# [mysqld]
# character-set-server = utf8mb4
# collation-server = utf8mb4_general_ci
# max_connections = 1000
# innodb_buffer_pool_size = 1G
# [client]
# default-character-set = utf8mb4
redis:
image: redis:7
container_name: redis
restart: always
environment:
- TZ=Asia/Shanghai # 设置容器时区
ports:
- "6379:6379"
volumes:
- /opt/docker/redis/data:/data # 数据持久化目录
- /opt/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf # 配置文件
- /opt/docker/redis/logs:/var/log/redis # 日志目录
- /etc/localtime:/etc/localtime:ro # 宿主机时间同步
command:
redis-server /usr/local/etc/redis/redis.conf
# redis.conf
# # 基础配置
# bind 0.0.0.0
# port 6379
# timeout 0
# tcp-keepalive 300
# # 安全配置
# requirepass Cc68db0e
# # 持久化配置
# save 900 1
# save 300 10
# save 60 10000
# stop-writes-on-bgsave-error no
# rdbcompression yes
# rdbchecksum yes
# dbfilename dump.rdb
# dir /data
# # 内存管理
# maxmemory 2gb
# maxmemory-policy allkeys-lru
# # 日志配置
# loglevel notice
# logfile /var/log/redis/redis.log
# # 其他优化
# daemonize no
# protected-mode no
# appendonly yes
# appendfsync everysec
elasticsearch:
image: elasticsearch:8.13.4 # 指定版本(建议与Kibana版本一致)
container_name: elasticsearch
restart: always
environment:
- discovery.type=single-node # 单节点模式
- ES_JAVA_OPTS=-Xms2g -Xmx2g # JVM内存分配
- TZ=Asia/Shanghai # 时区配置
- ELASTIC_PASSWORD=Cc68db0e # 必须设置密码
- xpack.security.enabled=true # 启用安全功能
# - xpack.security.http.ssl.enabled=false # 禁用HTTPS(测试环境)
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /opt/docker/es/data:/usr/share/elasticsearch/data # 数据目录
- /opt/docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 配置文件
- /opt/docker/es/plugins:/usr/share/elasticsearch/plugins # 插件目录
- /opt/docker/es/certs:/usr/share/elasticsearch/config/certs # 证书目录
- /etc/localtime:/etc/localtime:ro # 宿主机时间同步
ports:
- "9200:9200" # HTTP API
- "9300:9300" # 节点通信
# elasticsearch.yml
#cluster.name: my-es-cluster
#node.name: node-1
#network.host: 0.0.0.0
#
## 安全配置(自动生成证书)
## # xpack.security.http.ssl:
## # enabled: true
## # keystore.path: certs/http.p12
## # truststore.path: certs/http.p12
##
## # 内存锁定配置
#bootstrap.memory_lock: true
#
## # 跨域配置(需要可视化工具时)
#http.cors.enabled: true
#http.cors.allow-origin: "*"
nacos:
image: nacos/nacos-server:v2.5.1 # 指定稳定版本
container_name: nacos-server
environment:
MODE: standalone # 单机模式
SPRING_DATASOURCE_PLATFORM: mysql
MYSQL_SERVICE_HOST: 10.10.10.20 # 使用服务名通信
MYSQL_SERVICE_PORT: 3306
MYSQL_SERVICE_DB_NAME: nacos_config
MYSQL_SERVICE_USER: root
MYSQL_SERVICE_PASSWORD: root
NACOS_AUTH_ENABLE: "true" # 开启鉴权
NACOS_AUTH_TOKEN: SecretKey012345678901234567890123456789012345678901234567890123456789 # 自定义Token(生产必改)
NACOS_AUTH_IDENTITY_KEY: nacosAuthIdentityKey
NACOS_AUTH_IDENTITY_VALUE: nacosAuthIdentityValue
JVM_XMS: 1g # 初始堆内存
JVM_XMX: 1g # 最大堆内存
TZ: Asia/Shanghai # 时区
ports:
- "8848:8848" # Web控制台
- "9848:9848" # gRPC通信
volumes:
- /opt/docker/nacos/logs:/home/nacos/logs
- /opt/docker/nacos/conf:/home/nacos/conf # 自定义配置文件挂载