windows 10 home(和pro)上带有mysql容器问题的docker工具箱

eagi6jfj  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(436)

我无法使用Map到主机文件夹的数据库卷运行由mysql映像生成的mysql容器。
不管主机文件夹是空的还是有现有的数据库文件。我知道docker toolbox只能从c:\users\装载windows上的卷,所以我的测试文件夹就在那个文件夹下。
我尝试了不同的(官方的和非官方的)mysql图片,从5.5到最新版本,都没有结果。当容器中的location/var/lib/mysql指向主机上的某个文件夹(c:\users\someuser\testfolder)时,我在容器运行时遇到了一个错误,带有innodb error(“innodb:operating system error number 22 in a file operation”或“innodb:file./ib\u logfile0:'aio write'returned os error 122”)。
我试图修改mysql容器的/etc/my.cnf(在[mysqld]部分下,使用“docker cp”命令)添加“innodb\u use\u native\u aio=off”或(有时偶数和)“innodb\u use\u native\u aio=0”键,甚至试图用“--user 1000:50”运行“docker run”,也没有结果。
在我将mount point从容器的/var/lib/mysql中删除到主机文件夹之后,容器就正常运行了。
有许多类似的问题,但没有一个完整的分步解决方案如何在windows10(home&pro)下运行带有docker工具箱的mysql容器,以使容器与主机卷上的现有数据库一起工作。

lkaoscv7

lkaoscv71#

我花了一段时间才得到答案,但最后一切都成功了!对于那些谁是新的docker和有问题挂载mysql文件夹到主机这里是一个简短的指南。请注意,我在实验中选择了bitnami/mysql图像(对于其他图像,文件夹可以不同)。
创建文件夹 c:\Users\[YourAccount]\MySQLData 对于mysql数据。
创建文件夹 c:\Users\[YourAccount]\MySQLConf 对于自定义mysql配置文件。
创建自定义mysql配置文件 c:\Users\[YourAccount]\MySQLConf\my_custom.cnf 再加上两行:

[mysqld]
innodb_use_native_aio=0

4现在创建并运行容器,将自定义配置和数据文件夹装载到其中:

docker run -d --name mysql -e ALLOW_EMPTY_PASSWORD="yes" \
-v //c/Users/[YourAccount]/MySQLData:/bitnami/mysql/data \
-v //c/Users/[YourAccount]/MySQLConf/my_custom.cnf:/opt/bitnami/mysql/conf/my_custom.cnf:ro \ bitnami/mysql:latest

万岁!

相关问题