docker-compose1.yml 1.9 KB

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