[ docker-compose.yml文件基本使用 ]


docker-compose.yml

注意点: - mysql的挂载配置文件, 需要注意 - 启动Mysql8后, 连接需要进入mysql进行用户配置

version: '3'

services:
  db:
    image: mysql:latest
    restart: always
    environment:
      - MYSQL_DATABASE=test_db
      - MYSQL_ROOT_PASSWORD=chenhaifeng
    ports:
      - "3306:3306"
    volumes:
      - ./bin/datas/mysql/:/var/lib/mysql
      - ./bin/conf/mysql/my.cnf:/etc/mysql/my.cnf
      - ./bin/datas/mysql-files:/var/lib/mysql-files/
    depends_on:
      - redis
    container_name: db

  redis:
    restart: always
    image: redis:latest
    volumes:
      - ./bin/datas/redis/:/data
    ports:
      - "6379:6379"
    container_name: redis

  elasticsearch:
    image: elasticsearch:7.11.1
    restart: always
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ports:
      - "9200:9200"
      - "9300:9300"
    container_name: elasticsearch

  kibana:
    image: kibana:7.11.1
    restart: always
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    container_name: kibana

  rabbitmq-master:
    image: rabbitmq:management
    hostname: rabbitmq-master
    restart: always
    ports:
      - "15672:15672"
      - "5672:5672"
    container_name: rabbitmq-master

my.cnf

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
# basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
# datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=50
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=50
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#default_authentication_plugin=mysql_native_password
#是否对sql语句大小写敏感,1表示不敏感
#lower_case_table_names=1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800
#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout=3600
#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size=64M
max_heap_table_size=64M
secure_file_priv=''
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

普通my.cnf

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4


[mysqld]
# 服务器默认字符集
character-set-server=utf8mb4

# 服务器的默认排序规则
collation-server=utf8mb4_general_ci