Docker安装mysql将data数据目录挂载到本地磁盘
$ docker run -d --name mysql -p 3306:3306 \
> -e MYSQL_ROOT_PASSWORD=root \
> -e Innodb_use_native_aio=true \
> -v F:\\Docker\\mysql\\data:/var/lib/mysql \
> -v F:\\Docker\\mysql\\conf\\conf.d:/etc/mysql/conf.d \
> -v F:\\Docker\\mysql\\conf\\mysql.conf.d:/etc/mysql/mysql.conf.d \
> -v F:\\Docker\\mysql\\log:/var/log/mysql \
> --restart=on-failure:3 --privileged=true \
> mysql:5.7.35
关键是-e后的INNODB_USE_NATIVE_AIO=On要写上(至于具体原因请路过的大佬指出),也可以在上述命令行中加上--privileged=true
对于数据挂载通常有以下两种:
docker run volume... 不能挂载文件必须是目录,路径可以不存在,会覆盖目标目录或文件(一些配置文件需要提前复制出来),如果宿主机目录为空时,会保留容器内目录内容
docker run --mount type=bind | volume,src=,dst=,...可以挂载文件或目录,会覆盖目标目录或文件(一些配置文件需要提前复制出来),如果宿主机目录为空时,不会保留容器内目录内容
对正在运行中的容器无挂载方法
注:
mysql官方支持内核级别的AIO,称为native AIO,参数为innodb_use_native_aio.(asynchronous io)
本文来自博客园,作者:编程混子,转载请注明原文链接:https://www.cnblogs.com/Qyehui/p/15149401.html