我无法使用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容器,以使容器与主机卷上的现有数据库一起工作。
1条答案
按热度按时间lkaoscv71#
我花了一段时间才得到答案,但最后一切都成功了!对于那些谁是新的docker和有问题挂载mysql文件夹到主机这里是一个简短的指南。请注意,我在实验中选择了bitnami/mysql图像(对于其他图像,文件夹可以不同)。
创建文件夹
c:\Users\[YourAccount]\MySQLData
对于mysql数据。创建文件夹
c:\Users\[YourAccount]\MySQLConf
对于自定义mysql配置文件。创建自定义mysql配置文件
c:\Users\[YourAccount]\MySQLConf\my_custom.cnf
再加上两行:4现在创建并运行容器,将自定义配置和数据文件夹装载到其中:
万岁!