Windows7 环境下 Docker Toolbox 启动 Mysql 镜像报错:Operating system error number 22 in a file operation


0x00 问题描述

今天使用Docker Toolbox的过程中遇到无法启动Mysql Service的情况,通过查看Logs得到错误提示Operating system error number 22 in a file operation。

0x01 解决办法

通过搜索发现可能与data目录使用的是windows系统的共享文件夹有关,我尝试了两个方法:

  1. 将data目录修改为虚拟机自带目录(如/mnt/sda1/var/lib/data)
  2. 在docker-compose文件中mysql service的command选项中添加–innodb-use-native-aio=0这一配置
mysql:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password --innodb-use-native-aio=0
    ports:
      - "3306:3306"
    volumes:
      - /projects/data/assistant:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 1111
      MYSQL_DATABASE: assistant

mysql service均可以正常启动。

0x02 参考文章

https://github.com/docker-library/mysql/issues/371