将 DDEV 数据库挂载到主机文件系统而不是内部 docker 卷
Mount DDEV database to host filesystem instead of inside docker volume
我有一个带有大型数据库(大约 50GB)的项目,因为我必须 运行 还有其他带有 docker/ddev 的项目,这可能是个问题,我肯定可以docker 磁盘的大小,但我想知道某个项目是否有可能将数据库保留在 docker...
之外
对于普通 docker (docker-compose) 项目,我保留了一个不在 docker 内的 "data" 文件夹,如果它是可能。
现在我在 OSX,但如果它也可以在 Win10 中使用,那就太好了。
谢谢!
ddev 过去常常使用绑定挂载将数据库挂载到主机上,但是 docker 有很多问题,尤其是在 Windows 上。它在 mac 和 Linux 上运行良好,但在 Win10 家庭版的 Docker 工具箱上运行不佳。 Docker 卷交互更可靠,速度更快,因为它们位于 linux 卷上。
但是,您可以.ddev/docker-compose.bindmountdb.yaml
使用这样的内容,它基本上切换回旧方法,并将数据库绑定挂载到项目的 .ddev/db 目录中。
version: "3.6"
services:
db:
volumes:
- type: "bind"
source: "./db"
target: "/var/lib/mysql"
当然,另一种选择是在您的主机上 运行 一个 MySQL/MariaDB 服务器,用于那个庞大的数据库。然后您的项目可以使用主机名 "host.docker.internal" 访问主机上的数据库。这会让您进入 运行 在主机上管理您自己的数据库服务器的业务,但是对于一个庞大的数据库来说,这可能是合适的。您还可以 运行 本地网络上其他地方的数据库服务器,这是相同的基本思想;数据库服务器必须可以从 Web 容器内部访问。在任何一种情况下,您都可以使用 omit_containers: [db]
而根本不使用数据库容器。
我有一个带有大型数据库(大约 50GB)的项目,因为我必须 运行 还有其他带有 docker/ddev 的项目,这可能是个问题,我肯定可以docker 磁盘的大小,但我想知道某个项目是否有可能将数据库保留在 docker...
之外
对于普通 docker (docker-compose) 项目,我保留了一个不在 docker 内的 "data" 文件夹,如果它是可能。
现在我在 OSX,但如果它也可以在 Win10 中使用,那就太好了。
谢谢!
ddev 过去常常使用绑定挂载将数据库挂载到主机上,但是 docker 有很多问题,尤其是在 Windows 上。它在 mac 和 Linux 上运行良好,但在 Win10 家庭版的 Docker 工具箱上运行不佳。 Docker 卷交互更可靠,速度更快,因为它们位于 linux 卷上。
但是,您可以.ddev/docker-compose.bindmountdb.yaml
使用这样的内容,它基本上切换回旧方法,并将数据库绑定挂载到项目的 .ddev/db 目录中。
version: "3.6"
services:
db:
volumes:
- type: "bind"
source: "./db"
target: "/var/lib/mysql"
当然,另一种选择是在您的主机上 运行 一个 MySQL/MariaDB 服务器,用于那个庞大的数据库。然后您的项目可以使用主机名 "host.docker.internal" 访问主机上的数据库。这会让您进入 运行 在主机上管理您自己的数据库服务器的业务,但是对于一个庞大的数据库来说,这可能是合适的。您还可以 运行 本地网络上其他地方的数据库服务器,这是相同的基本思想;数据库服务器必须可以从 Web 容器内部访问。在任何一种情况下,您都可以使用 omit_containers: [db]
而根本不使用数据库容器。