docker-compose 启动常见中间件:mysql、redis、minio、elasticsearch(单节点)、rabbitmq

version: "3.0"
services: 
  mysql:
    image: mysql:5.7.39
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test_db
    command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp --ignore-db-dir=lost+found
    volumes:
      - ./mysql/data/mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime # 时间戳同步
    ports:
      - "3306:3306"
    networks:
      - minio
  redis:
    image: redis:7
    container_name: redis
    restart: always
    volumes:
      # - ./redis/datadir:/data
      - ./redis/conf/redis.conf:/etc/redis/redis.conf
      - /etc/localtime:/etc/localtime
      # - ./redis/logs:/logs
    command: ["redis-server","/etc/redis/redis.conf"]
    ports:
      - "6379:6379"
    networks:
      - minio
  minio:
    image: minio/minio:RELEASE.2022-04-16T04-26-02Z
    container_name: minio
    restart: always
    command: server /data1 /data2 /data3 /data4 --console-address ":9001"
    environment:
      MINIO_ACCESS_KEY: admin
      MINIO_SECRET_KEY: admin123@u1t..P
    logging:
      driver: json-file
    volumes:
      - ./minio/data1:/data1
      - ./minio/data2:/data2
      - ./minio/data3:/data3
      - ./minio/data4:/data4
      - /etc/localtime:/etc/localtime
    ports:
      - "9000:9000"
      - "9001:9001"
    networks:
      - minio   
  es-cluster01:
    image: elasticsearch:7.7.0
    container_name: elastic-cluster01
    restart: always
    environment:
      - discovery.type=single-node
    volumes:
      - ./es/data:/usr/share/elasticsearch/data
      - /etc/localtime:/etc/localtime
    ports:
      - "9200:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - minio 
  rabbitmq:
    image: rabbitmq:3.8.3-management
    container_name: rabbitmq
    restart: always
    hostname: myRabbitmq
    privileged: true
    ports:
      - "15672:15672"
      - "5672:5672"
    volumes:
      - /var/lib/rabbitmq:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=root
      - RABBITMQ_DEFAULT_PASS=root
    networks:
      - minio      
networks:
  minio:
    driver: bridge

注:rabbitmq的挂载路径,启动之后,生成的访问文件需要访问授权

docker-compose服务编排(mysqlredis、mongo、nacos、rabbitmq、kafka、fastdfs、minio、es、seata、yapi、jenkins)
└── redis.conf docker-compose.yml 整合redis、mq、MySQL,另外还包括自定义mq账号和密码,自定义MySQL数据库密码,自动创建数据库,自动导入数据 version: "3.0 MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。 由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简,基本是复制可执行程序,行命令可以运行起来。 MinIO兼容亚马逊S3( Simple Storage Service简存储服务)云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、 container_name: redis restart: always #启动命令 redis-server 后面可以跟读取配置文件的路径(默认配置文件:/usr/local/etc/redis/redis.conf) #也可在宿主机定义配置文件 映射容器内部指定位置 然后启动时指定 配置文件路径 #机版 不做改动 #command: redis-server /usr/local