Docker Compose 本地环境搭建:mysql

Docker Compose 本地环境搭建:mysql

  • [🔗 前言:Docker Compose 本地环境搭建相关文章](#🔗 前言:Docker Compose 本地环境搭建相关文章)
  • [🐳 Docker Compose 本地环境搭建:mysql](#🐳 Docker Compose 本地环境搭建:mysql)
    • [📚 目录结构设计](#📚 目录结构设计)
    • [📄 docker-compose.yml](#📄 docker-compose.yml)
    • [🚀 启动方式](#🚀 启动方式)

🔗 前言:Docker Compose 本地环境搭建相关文章


🐳 Docker Compose 本地环境搭建:mysql


📚 目录结构设计

推荐使用如下结构:

bash 复制代码
infra/
├── .env

├── mysql/
│   └── docker-compose.yml

├── redis/
│   └── docker-compose.yml

├── elasticsearch/
│   └── docker-compose.yml

├── skywalking/
│   └── docker-compose.yml

├── nacos/
│   └── docker-compose.yml

📄 docker-compose.yml

bash 复制代码
# =========================================================
# 用于构建环境:MySQL
# 宿主机挂载目录、端口、密码、版本号、环境后缀均通过 .env 文件管理
# =========================================================

###########################################################
# 网络配置
###########################################################
networks:
  env_network: # 内部网络标识固定
    driver: bridge
    name: ${NETWORK_NAME}        # Docker 实际网络名动态生成
    ipam:
      config:
        - subnet: ${NETWORK_SUBNET}  # 子网从 .env 获取

###########################################################
# 卷(Volume)配置
###########################################################
volumes:
  # MySQL
  mysql_data:
    driver: local
    driver_opts:
      type: none
      device: ${HOST_VOLUME}/${ENV}/MySQL8/data
      o: bind
  mysql_conf:
    driver: local
    driver_opts:
      type: none
      device: ${HOST_VOLUME}/${ENV}/MySQL8/conf
      o: bind
  mysql_logs:
    driver: local
    driver_opts:
      type: none
      device: ${HOST_VOLUME}/${ENV}/MySQL8/logs
      o: bind

###########################################################
# 服务定义
###########################################################
services:
  # MySQL
  mysql:
    image: mysql:${MYSQL_VERSION}
    container_name: mysql_${MYSQL_VERSION}_${ENV}   # 容器名体现版本和环境
    networks:
      - env_network   # 内部网络引用固定标识
    ports:
      - "${MYSQL_PORT}:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql
      - mysql_conf:/etc/mysql/conf.d
      - mysql_logs:/logs
    restart: unless-stopped
    labels:
      env: ${ENV}
      version: ${MYSQL_VERSION}
      service: mysql_${ENV}

🚀 启动方式

.env 同级目录下执行

bash 复制代码
docker compose --env-file .env -f mysql/docker-compose.yml up -d
docker compose --env-file .env -f redis/docker-compose.yml up -d
docker compose --env-file .env -f elasticsearch/docker-compose.yml up -d
docker compose --env-file .env -f skywalking/docker-compose.yml up -d
docker compose --env-file .env -f nacos/docker-compose.yml up -d
  • -d 表示 后台运行
  • Compose 会:
    • 自动读取 .env 文件里的变量
    • 根据 docker-compose.yml 配置创建网络、卷和容器
    • 容器名、端口、挂载目录都会根据 .env 替换

相关推荐
不会就选b8 小时前
MySQL之视图
数据库·mysql
审判长烧鸡8 小时前
【AI问答/Docker】Docker全命令对照表:命令+中文+示例+示例说明
docker·ai
小肥君8 小时前
docker无法连接GPU资源解决方案
docker·容器·eureka
viva517210 小时前
Docker/历史演进,核心功能,相关工具
docker
江华森11 小时前
从零搭建 Kubernetes 集群并部署 Kuboard v3 管理面板 —— 国内环境完整实战教程
容器·kubernetes
kkk哥12 小时前
weixin121作品集展示微信小程序
java·mysql·微信小程序·ssm·b/s架构·作品集展示微信小程序
We Just Keep growing13 小时前
【MySQL进阶篇】—— 视图、存储过程、存储函数、触发器
数据库·mysql
友莘居士13 小时前
KingbaseES Docker速查表
运维·docker·容器
原来是猿13 小时前
Docker 【 技术架构(2)】
docker·架构
梦想的颜色14 小时前
MySQL 数据存储结构与查询执行生命周期深度解析
运维·数据结构·数据库·mysql·线程·优化