docker-compose搭建mysql

603 阅读1分钟

1.docker及docker-compose版本

Docker version 19.03.15 docker-compose version 1.29.2

2.编写my.cnf

#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysql]

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8mb4
default-authentication-plugin=mysql_native_password
#mysql在对DNS做反查
skip-name-resolve

explicit_defaults_for_timestamp=1

lower_case_table_names=1
max_allowed_packet =1024M
symbolic-links=0

3.编写docker-compose.yml

version: '3.8'

services:

  db:
    #构建mysql镜像
    image: mysql:5.7
    container_name: xq_mysql #容器名
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: xqwl8888 #root管理员用户密码
    ports:
      - '3306:3306'
    volumes:
        #mysql数据库挂载到宿主机目录/test/mytest/mysql/db
      - "/test/mytest/mysql/db:/var/lib/mysql"
        #容器的配置目录挂载到宿主机目录/test/mytest/mysql/conf
      - "/test/mytest/mysql/conf:/etc/mysql/conf.d"
    #使用桥接,保证docker容器之间通讯正常
    networks:
      - docker_bridge

#使用桥接,保证docker容器之间通讯正常
networks:
  docker_bridge:
    external: true

4.运行

docker network create docker_bridge
docekr-compose up