services: mysql80-1: image: registry.cn-chengdu.aliyuncs.com/reghao/mysql:8.0.36 container_name: mysql80-1 hostname: mysql80-1 ports: - "33061:3306" environment: MYSQL_ROOT_PASSWORD: "Root_123456" volumes: - /etc/localtime:/etc/localtime:ro - /opt/docker/mysql80a/conf/my.cnf:/etc/mysql/conf.d/my.cnf - /opt/docker/mysql80a/data:/var/lib/mysql - /opt/docker/mysql80a/log:/var/log/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p$${MYSQL_ROOT_PASSWORD}"] interval: 5s timeout: 5s retries: 10 networks: mgr-net: ipv4_address: 172.20.0.11 mysql80-2: image: registry.cn-chengdu.aliyuncs.com/reghao/mysql:8.0.36 container_name: mysql80-2 hostname: mysql80-2 ports: - "33062:3306" environment: MYSQL_ROOT_PASSWORD: "Root_123456" volumes: - /etc/localtime:/etc/localtime:ro - /opt/docker/mysql80b/conf/my.cnf:/etc/mysql/conf.d/my.cnf - /opt/docker/mysql80b/data:/var/lib/mysql - /opt/docker/mysql80b/log:/var/log/mysql healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p$${MYSQL_ROOT_PASSWORD}" ] interval: 5s timeout: 5s retries: 10 depends_on: mysql80-1: condition: service_healthy networks: mgr-net: ipv4_address: 172.20.0.12 mysql80-3: image: registry.cn-chengdu.aliyuncs.com/reghao/mysql:8.0.36 container_name: mysql80-3 hostname: mysql80-3 ports: - "33063:3306" environment: MYSQL_ROOT_PASSWORD: "Root_123456" volumes: - /etc/localtime:/etc/localtime:ro - /opt/docker/mysql80c/conf/my.cnf:/etc/mysql/conf.d/my.cnf - /opt/docker/mysql80c/data:/var/lib/mysql - /opt/docker/mysql80c/log:/var/log/mysql healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p$${MYSQL_ROOT_PASSWORD}" ] interval: 5s timeout: 5s retries: 10 depends_on: mysql80-2: condition: service_healthy networks: mgr-net: ipv4_address: 172.20.0.13 proxysql: image: proxysql/proxysql:2.6.3 container_name: proxysql restart: always ports: - "6032:6032" # 管理接口 (SQL 命令行配置) - "6033:6033" # 业务访问接口 (应用连这里) volumes: - /etc/localtime:/etc/localtime:ro healthcheck: # 检查业务端口 6032 是否接受连接 test: [ "CMD", "mysql", "-uadmin", "-padmin", "-h127.0.0.1", "-P6032", "-e", "SELECT 1" ] interval: 10s # 每 10 秒检查一次 timeout: 5s # 超时时间 5 秒 retries: 3 # 连续失败 3 次认为是不健康 start_period: 10s # 容器启动后给 10 秒缓冲时间再开始检查 networks: mgr-net: ipv4_address: 172.20.0.15 networks: mgr-net: driver: bridge ipam: config: - subnet: 172.20.0.0/24