大约一年前,我可以将Windows文件夹绑定到Docker MySql文件夹。
尝试使用Docker MySql 8.0.12时,我无法将Windows文件夹绑定到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并运行“默认”虚拟机。选择“默认”>设置>共享文件夹。在windows ='d:\ zut'上添加共享文件夹名称='d / zut',文件夹并为其提供所有权限并保持其持久性。
在docker-compose文件中,您可以使用该映射:
volumes:
- //d/zut:/var/lib/mysql
答案2:命名卷
如果您遇到第一个解决方案的问题,可以使用docker“命名卷”。 Docker管理持久性卷。访问数据有点棘手;-)
在docker-compose.yml文件中添加(在第一个'zut'no'/'之前)
services:
mysql-docker-container:
image: mysql:8.0.12
environment:
- MYSQL_PASSWORD=*** etc etc
volumes:
- zut:/var/lib/mysql
ports:
- "3306:3306"
volumes:
zut: