life-notes/src/note/Docker/Docker-Compose/Auth环境.md

4.1 KiB
Raw Blame History

Auth环境

文件方式安装环境

使用docker-compose有的时候会因为版本不同但是配置文件主要内容就是这些。需要注意版本问题

mysql配置问题

特性 **my.cnf** **conf.d** 目录
文件类型 单个文件 目录,包含多个 .cnf 文件
配置方式 集中式配置 分布式配置
优先级 高(覆盖 conf.d 中的配置) 低(被 my.cnf 覆盖)
适用场景 全局配置,核心配置 模块化配置,便于扩展和维护

name: auth-dependence  # 定义该配置的名称为 auth-dependence
services: # 定义服务列表

  # 安装MySQL
  mysql: # 定义 MySQL 服务
    container_name: mysql_master  # 容器名称为 mysql_master
    image: mysql:8.0.33  # 使用 MySQL 8.0.33 版本的镜像
    ports:
      - "3306:3306"  # 将宿主机的 3306 端口映射到容器的 3306 端口
    environment:
      - MYSQL_ROOT_PASSWORD=123456  # 设置 MySQL 的 root 用户密码为 123456
      - TZ=Asia/Shanghai  # 设置时区为亚洲/上海
    volumes:
      # - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
      - ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d  # 挂载 MySQL 配置文件目录
      - ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql  # 挂载 MySQL 数据目录
      - ~/docker/docker_data/mysql/mysql_master/backup:/backup  # 挂载备份目录
    command:
      - "--log-bin=mysql-bin"  # 启用二进制日志
      - "--server-id=1"  # 设置服务器 ID 为 1
      - "--collation-server=utf8mb4_unicode_ci"  # 设置默认的排序规则为 utf8mb4_unicode_ci
      - "--character-set-server=utf8mb4"  # 设置默认的字符集为 utf8mb4
      - "--lower-case-table-names=1"  # 设置表名存储为小写
    restart: always  # 设置容器总是自动重启
    privileged: true  # 赋予容器特权模式
    networks:
      - auth  # 将 MySQL 服务加入到 auth 网络

  # 安装Redis
  redis: # 定义 Redis 服务
    container_name: redis_master  # 容器名称为 redis_master
    image: redis:7.0.10  # 使用 Redis 7.0.10 版本的镜像
    ports:
      - "6379:6379"  # 将宿主机的 6379 端口映射到容器的 6379 端口
    volumes:
      # - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
      - ~/docker/docker_data/redis_master:/etc/redis  # 挂载 Redis 配置文件目录
      - ~/docker/docker_data/redis_master/data:/data  # 挂载 Redis 数据目录
    command:
      - "--appendonly yes"  # 启用 AOF 持久化
      - "--daemonize no"  # 不以守护进程方式运行
      - "--requirepass 123456"  # 设置 Redis 访问密码为 123456
      - "--tcp-keepalive 300"  # 设置 TCP keepalive 时间为 300 秒
    restart: always  # 设置容器总是自动重启
    networks:
      - auth  # 将 MySQL 服务加入到 auth 网络

  # 安装 Minio
  minio: # 定义 Minio 服务
    image: minio/minio  # 使用 Minio 官方镜像
    container_name: minio_master  # 容器名称为 minio_master
    ports:
      - "9000:9000"  # 将宿主机的 9000 端口映射到容器的 9000 端口
      - "9090:9090"  # 将宿主机的 9090 端口映射到容器的 9090 端口
    volumes:
      - ~/docker/docker_data/minio/data:/data  # 挂载 Minio 数据目录
    environment:
      - MINIO_ROOT_USER=bunny  # 设置 Minio 的 root 用户名为 bunny
      - MINIO_ROOT_PASSWORD=02120212  # 设置 Minio 的 root 用户密码为 02120212
    command: "server /data --console-address :9090"  # 启动 Minio 服务并指定控制台地址
    restart: always  # 设置容器总是自动重启
    networks:
      - auth  # 将 MySQL 服务加入到 auth 网络

networks: # 定义网络
  auth: # 定义名为 auth 的网络
    name: auth  # 网络名称为 auth
    driver: bridge  # 使用 bridge 驱动(默认)