如何解决在数据库Docker容器中挂载本地机器的文件系统时出现问题
我正在尝试在 Docker 容器中为数据库挂载本地文件系统。
如官方存储库 https://hub.docker.com/_/mariadb 中的说明所写:
使用自定义 MariaDB 配置文件 启动配置在文件/etc/mysql/my.cnf 中指定,该文件又包含在/etc/mysql/conf.d 目录中以.cnf 结尾的所有文件。此目录中文件中的设置将增加和/或覆盖 /etc/mysql/my.cnf 中的设置。如果要使用自定义的 MariaDB 配置,可以在主机上的目录中创建备用配置文件,然后将该目录位置挂载为 mariadb 容器内的 /etc/mysql/conf.d。
如果 /my/custom/config-file.cnf 是您自定义的路径和名称 配置文件,你可以像这样启动你的 mariadb 容器 (注意只使用自定义配置文件的目录路径 在这个命令中):
$ docker run --name some-mariadb -v /my/custom:/etc/mysql/conf.d -e MARIADB_ROOT_PASSWORD=my-secret-pw -d mariadb:tag
参考这个说明,在我的项目根目录下,我创建了databases目录,我在docker-compose文件中写了以下内容:
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: 111111
volumes:
- ./databases:/var/lib/mysql
之后,我运行命令:
docker-compose up
我收到以下消息:
正在创建 docker-proj_adminer_1 ... 完成创建 docker-proj_db_1
...完成附加到 docker-proj_db_1,docker-proj_adminer_1 db_1
| 2021-06-27 17:15:02+00:00 [注意] [入口点]:入口点脚本
MariaDB Server 1:10.5.11+maria~focal 启动。 db_1 | 2021-06-27
17:15:02+00:00 【注意】【入口点】:切换到专用用户
'mysql' db_1 | 2021-06-27 17:15:02+00:00 【注】【入口点】:
MariaDB Server 1:10.5.11+maria~focal 的入口点脚本已启动。
db_1 | 2021-06-27 17:15:03+00:00 【注】【入口点】:
初始化数据库文件 db_1 | 2021-06-27 17:15:18 0 [错误]
InnoDB:文件操作中的操作系统错误号 22。 db_1
| 2021-06-27 17:15:18 0 [错误] InnoDB:错误号 22 表示“无效”
参数'db_1 | 2021-06-27 17:15:18 0 [错误] InnoDB:文件
./ibdata1: 'aio write' 返回 OS 错误 222。无法继续
操作 db_1 | 210627 17:15:18 [错误] mysqld 得到信号 6 ;
db_1 |这可能是因为您遇到了错误。也有可能
这个二进制 db_1 |或它链接的库之一
反对已损坏,构建不当,db_1 |或配置错误。
硬件故障也可能导致此错误。
同时,我要注意的是,如果我执行相同的命令但没有挂载文件系统,那么一切都很好。
请告诉我,我的错误是什么,我做错了什么?
解决方法
卸载 Docker Toolbox 并安装 Docker Desktop 后,一切自行解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。