我陷入了与 Ubuntu、Docker、Virtual Box 共享文件夹相关的问题。抱歉,我无法详细说明,但我不知道问题的根源是什么。
当我运行“docker-compose up”命令并尝试运行官方 MySQL 容器时,它就会出现。
但首先让我解释一下背景。
我有一个 Wordpress 项目。
我的计划是在我的主机操作系统(Windows 10 Home)上编写代码,然后在我的客户操作系统(Ubuntu 18.04.2)上运行代码。更详细地说,我将在我的客户操作系统上使用 Docker,并提供 3 个容器,并使用 Docker Compose 构建/运行它们。
容器将是这些:
- WordPress 的
- MySQL
- PHPMyAdmin
您可以在下面找到我的 Docker Compose 文件的完整内容。
我对数据库容器有疑问,这就是我注释掉其他内容的原因。
version: '3'
services:
# wordpress
# wordpress:
# image: 'wordpress:latest'
# container_name: 'wordpress1-wordpress'
# networks:
# - wordpress1-wordpress-network
# volumes:
# - ./:/var/www/html
# restart: always
# depends_on:
# - database
# environment:
# WORDPRESS_DB_HOST: database:3306
# WORDPRESS_DB_USER: admin
# WORDPRESS_DB_PASSWORD: wp123
# ports:
# - '8000:80'
# database
database:
image: 'mysql:latest'
container_name: 'wordpress1-database'
networks:
- wordpress1-wordpress-network
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wordpress1
MYSQL_USER: admin
MYSQL_PASSWORD: wp123
# phpmyadmin
# phpmyadmin:
# image: 'phpmyadmin/phpmyadmin:latest'
# container_name: 'wordpress1-phpmyadmin'
# networks:
# - wordpress1-wordpress-network
# restart: always
# depends_on:
# - database
# environment:
# PMA_HOST: database:3306
# MYSQL_ROOT_PASSWORD: root_password
# ports:
# - 8080:80
networks:
wordpress1-wordpress-network:
driver: bridge
客户操作系统已在后台启动。
我在主机操作系统上使用 Visual Studio Code。
我打开一个新终端并建立 SSH 连接,这样我就可以从这里使用 Docker。
一开始,我的文件夹只包含“docker-compose.yaml”文件,没有其他内容。
在第一个“docker-compose up”命令之后,会创建一个新的空文件夹,并且我的终端中会显示一些错误日志。
wordpress1-database | 2019-08-08T09:37:33.088721Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
当我更改 yaml 文件中的 Guest OS 文件夹路径时,一切都正常。例如:将“./db_data”部分更改为“/var/db_data”,然后我看不到任何错误。
这就是为什么我认为这应该是权限错误。
您可以在下面看到当前设置:
webdev@docker:/media/sf_development/_practice/wordpress1$ ll
total 4
drwxrwx--- 1 root vboxsf 0 Aug 8 09:37 ./
drwxrwx--- 1 root vboxsf 0 Jul 28 07:59 ../
drwxrwx--- 1 root vboxsf 0 Aug 8 09:46 db_data/
-rwxrwx--- 1 root vboxsf 1285 Aug 8 09:37 docker-compose.yaml*
webdev@docker:/media/sf_development/_practice/wordpress1$
您可以看到当前的群组设置:
webdev:x:1004:docker,vboxsf
vboxusers:x:113:
vboxsf:x:114:webdev,docker
docker:x:999:webdev
将共享卷保存在同一个项目文件夹中非常重要,那么我该如何解决这个问题呢?
提前感谢任何提示和建议!