【问题标题】:Docker toolbox with mysql container problem on Windows 10 Home (and Pro)Windows 10 家庭版(和专业版)上存在 mysql 容器问题的 Docker 工具箱
【发布时间】:2018-12-24 21:19:26
【问题描述】:

我无法运行由 MySQL 映像制作的 MySQL 容器,其中数据库卷映射到我的主机文件夹。

主机文件夹是否为空或包含现有数据库文件都没有关系。我知道 Docker Toolbox 只能从 c:\Users\ 在 Windows 上挂载卷,所以我的测试文件夹就在那个文件夹下。

我尝试了从 5.5 到最新的不同(官方和非官方)MySQL 映像,但没有结果。每当容器中的位置 /var/lib/mysql 指向我的主机上的文件夹(c:\Users\someuser\testfolder)时,容器运行时出现 InnoDB 错误(“InnoDB:操作系统文件操作中的错误号 22”或“InnoDB: File ./ib_logfile0: 'aio write' returned OS error 122”)。

我试图修改 mysql 容器的 /etc/my.cnf(在 [mysqld] 部分下,使用“docker cp”命令)添加“innodb_use_native_aio=OFF”或(有时甚至)“innodb_use_native_aio=0”键,甚至正在尝试使用“--user 1000:50”运行“docker run”,但也没有结果。

在我从容器的 /var/lib/mysql 删除挂载点到我的主机文件夹后,容器正常运行。

有许多类似的问题,但没有人提供完整的分步解决方案,如何在 Windows 10(家庭版和专业版)下使用 Docker 工具箱运行 MySQL 容器,以使容器与主机卷上的现有数据库一起工作。

【问题讨论】:

    标签: mysql docker innodb docker-toolbox


    【解决方案1】:

    我花了一段时间才得到答案,但最终一切正常!对于那些不熟悉 Docker 并且在将 MySQL 文件夹安装到主机时遇到问题的人,这里有一个简短的指南。请注意,我为我的实验选择了 bitnami/mysql 图像(对于其他图像文件夹可能不同)。

    1. 为 MySQL 数据创建一个文件夹 c:\Users\[YourAccount]\MySQLData
    2. 为自定义 MySQL 配置文件创建一个文件夹 c:\Users\[YourAccount]\MySQLConf
    3. 创建一个自定义 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
    

    万岁!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 2018-10-22
      相关资源
      最近更新 更多