大约一年前,我可以将 Windows 文件夹绑定(bind)到 Docker MySql 文件夹。
当尝试对 Docker MySql 8.0.12 执行相同操作时,我无法将 Windows 文件夹绑定(bind)到 MySql。我在mysql的日志中看到mbind:不允许操作。
services:
mysql-docker-container:
image: mysql:8.0.12
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_DATABASE=spring_app_db
- MYSQL_USER=app_user
- MYSQL_PASSWORD=***
volumes:
- k:/zut/docker/storage:/var/lib/mysql
ports:
- "3306:3306"
该文件夹是一个现有的空文件夹。我看到各种各样的帖子,但没有简单的解决方案。你能帮我找到好的解决方案吗?我删除了所有以前的容器和图像。
当尝试重新安装 MySql 5.7.* 或 5.6 时,我遇到了各种错误。
我可以看到 Windows 文件夹仍为空。
我应该在 Virtualbox 中配置一些东西吗?共享文件夹之类的?一年前我确实必须这样做。
日志信息(根据要求)是:
$ docker-compose -f docker-compose2.yml up
WARNING: The Docker Engine you're using is running in swarm mode.
Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.
To deploy your application across the swarm, use `docker stack deploy`.
Starting dockercomposespringbootmysql_mysql-docker-container_1 ... done
Attaching to dockercomposespringbootmysql_mysql-docker-container_1
mysql-docker-container_1 | 2018-09-02T13:53:15.776081Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
mysql-docker-container_1 | 2018-09-02T13:53:15.776168Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.12) starting as process 1
mysql-docker-container_1 | mbind: Operation not permitted
mysql-docker-container_1 | 2018-09-02T13:53:15.986113Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
mysql-docker-container_1 | 2018-09-02T13:53:16.053452Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
mysql-docker-container_1 | 2018-09-02T13:53:16.060630Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.infoschema@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.060890Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.061308Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.061722Z 0 [Warning] [MY-010315] [Server] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.062252Z 0 [Warning] [MY-010323] [Server] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.062621Z 0 [Warning] [MY-010323] [Server] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.063088Z 0 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.068879Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
mysql-docker-container_1 | 2018-09-02T13:53:16.069353Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
最佳答案
答案 1:通过 Oracle VM Virtualbox 共享文件夹
启动 Oracle VM Virtualbox 并运行“默认”虚拟机。选择“默认”> 设置 > 共享文件夹。添加共享文件夹名称 = 'd/zut',Windows 上的文件夹 = 'd:\zut' 并授予其所有权限并保持其持久性。
在 docker-compose 文件中,您可以使用该映射:
volumes:
- //d/zut:/var/lib/mysql
答案 2:命名卷
如果您在第一个解决方案中遇到问题,可以使用 docker“命名卷”。 Docker 管理持久卷。访问数据有点棘手;-)
在 docker-compose.yml 文件中添加(第一个“zut”之前没有“/”)
services:
mysql-docker-container:
image: mysql:8.0.12
environment:
- MYSQL_PASSWORD=*** etc etc
volumes:
- zut:/var/lib/mysql
ports:
- "3306:3306"
volumes:
zut:
关于mysql - Docker mysql 8 - 无法将 mysql 文件夹绑定(bind)到 Windows 10 文件夹。出现 mbind 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131478/