简单实例:

    1. docker run --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    2. # macos
    3. docker pull --platform linux/x86_64 mysql:5.7

    挂载本地磁盘

    1. docker run --name mysql7 -p 3306:3306 -v /d/DockerSpace/mysql/data:/var/lib/mysql -v /d/DockerSpace/mysql/log:/var/log/mysql -v /d/DockerSpace/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    2. # -v 宿主机目录:容器内目录,默认是rw读写模式,ro表示只读,默认只读
    3. # /d/DockerSpace/... 是Windows系统中 D:/DockerSpace/...
    4. # 执行指令的时候弹出确认是否挂载分享盘符D盘,点击确认即可
    5. # 随系统自动启动加参数: --restart=always

    注:
    要先在本地建目录 data、log、conf 目录
    conf 目录下建 my.cnf 文件并配置, 如:

    1. # The MySQL Server configuration file.
    2. #
    3. # For explanations see
    4. # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
    5. [mysql]
    6. #设置mysql客户端默认字符集
    7. default-character-set=utf8
    8. [mysqld]
    9. pid-file = /var/run/mysqld/mysqld.pid
    10. socket = /var/run/mysqld/mysqld.sock
    11. datadir = /var/lib/mysql
    12. secure-file-priv= NULL
    13. # Disabling symbolic-links is recommended to prevent assorted security risks
    14. symbolic-links=0
    15. #服务端使用的字符集默认为8比特编码的latin1字符集
    16. character_set_server = utf8
    17. #创建新表时将使用的默认存储引擎
    18. default-storage-engine=INNODB
    19. sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    20. #设置不区分大小写
    21. # 必须在安装好MySQL后 修改mySQL配置文件设置为不敏感,一旦启动后,再设置是无效的,而且启动报错;
    22. # 如果已经晚了,那必须把MySQL数据库文件全部 删除,修改配置文件再启动。
    23. lower_case_table_names=1

    参考:

    1. https://blog.csdn.net/monkeyhi/article/details/115395752