docker-compose1.yml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. services:
  2. mysql80-1:
  3. image: registry.cn-chengdu.aliyuncs.com/reghao/mysql:8.0.36
  4. container_name: mysql80-1
  5. hostname: node211
  6. restart: always
  7. network_mode: host
  8. environment:
  9. MYSQL_ROOT_PASSWORD: "Root_123456"
  10. volumes:
  11. - /etc/localtime:/etc/localtime:ro
  12. - /opt/docker/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf
  13. - /opt/docker/mysql/data:/var/lib/mysql
  14. - /opt/docker/mysql/log:/var/log/mysql
  15. # 🚨 1. 容器日志限制:防止标准输出无节制增长
  16. logging:
  17. driver: "json-file"
  18. options:
  19. max-size: "100m" # 单个日志文件最大 100M
  20. max-file: "3" # 最多保留 3 个归档文件
  21. # 🚨 2. 资源限制与预留(生产环境建议:MySQL 单独占领一台机器,这里限制 2核4G 开销)
  22. deploy:
  23. resources:
  24. limits:
  25. cpus: '2.0'
  26. memory: 4G
  27. reservations:
  28. cpus: '1.0'
  29. memory: 2G
  30. healthcheck:
  31. test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p$${MYSQL_ROOT_PASSWORD}"]
  32. interval: 5s
  33. timeout: 5s
  34. retries: 10
  35. proxysql:
  36. image: registry.cn-chengdu.aliyuncs.com/reghao/proxysql_proxysql:8.0.36
  37. container_name: proxysql
  38. restart: always
  39. network_mode: host
  40. volumes:
  41. - /etc/localtime:/etc/localtime:ro
  42. # ProxySQL 日志限制
  43. logging:
  44. driver: "json-file"
  45. options:
  46. max-size: "50m"
  47. max-file: "3"
  48. # ProxySQL 资源限制(作为转发层,日常消耗极低)
  49. deploy:
  50. resources:
  51. limits:
  52. cpus: '1.0'
  53. memory: 1G
  54. reservations:
  55. cpus: '0.5'
  56. memory: 512M
  57. healthcheck:
  58. test: [ "CMD", "mysql", "-uadmin", "-padmin", "-h127.0.0.1", "-P6032", "-e", "SELECT 1" ]
  59. interval: 10s
  60. timeout: 5s
  61. retries: 3
  62. start_period: 10s