如何在Windows10上设置docker compose来初始化MySQL数据库?

如何在Windows10上设置docker compose来初始化MySQL数据库?,mysql,docker,docker-compose,Mysql,Docker,Docker Compose,我正在尝试使用Docker compose和以下配置创建MySQL数据库(在Docker容器上,在Windows 10主机上使用Docker toolbox): docker-compose.yml version: '2' services: db: container_name: test restart: unless-stopped image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 'pa

我正在尝试使用Docker compose和以下配置创建MySQL数据库(在Docker容器上,在Windows 10主机上使用Docker toolbox):

docker-compose.yml

version: '2'
services:
  db:
    container_name: test
    restart: unless-stopped
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_DATABASE: 'mydb'
    ports: 
      - 6612:3306
    volumes:
      - ./db:/var/lib/mysql
我在一个只包含
docker compose.yml
的文件夹中运行它,并得到以下输出

$ docker-compose up

Recreating test ... done
Attaching to test
test  | Initializing database
test  | 2018-04-21T17:31:30.722810Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
test  | 2018-04-21T17:31:30.727269Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
test  | 2018-04-21T17:31:30.727618Z 0 [ERROR] Aborting
test  |
test  | Initializing database
test  | 2018-04-21T17:31:30.722810Z 0 [Warning] TIMESTAMP with implicit 
      .
      .
      .
它似乎在抱怨现有的文件,但当文件夹为空时,怎么会有这些文件呢

第二次运行同一个文件时,在同一个空文件中(除了
docker compose.yml
),我得到:

这次它在我的pwd中创建了一个a
/db
文件夹,其中包含一些文件:

  • ib_日志文件1
  • 日志文件101
  • ibdata1

但没什么了,再次运行它,我们回到了第一个输出。同样的
docker compose.yml
在Ubuntu 16.04上也可以正常工作。有谁能告诉我可能出了什么问题吗?

似乎关键在于这一输出行:

[ERROR] InnoDB: File ./ib_logfile101: 'aio write' returned OS error 122.
显然,启用AIO对我的设置不起作用。我仍然不知道为什么,但是这个修订版的
docker compose.yml
适合我:

version: '2'
services:
  db:
    container_name: test
    restart: unless-stopped
    image: mysql:5.7
    command: --innodb_use_native_aio=0
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_DATABASE: 'mydb'
    ports: 
      - 6612:3306
    volumes:
      - ./db:/var/lib/mysql

这要归功于AndrewD仍然不确定到底是什么问题。虽然我怀疑Docker Toolbox(与Docker for Windows相反)可能与此有关。

它对我不起作用,但我有一个错误
文件。/ibdata1:“open”返回了操作系统错误71。
version: '2'
services:
  db:
    container_name: test
    restart: unless-stopped
    image: mysql:5.7
    command: --innodb_use_native_aio=0
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_DATABASE: 'mydb'
    ports: 
      - 6612:3306
    volumes:
      - ./db:/var/lib/mysql