docker - 将 DDEV 数据库挂载到主机文件系统而不是内部 docker 卷

标签 docker ddev

我有一个带有大型数据库(或多或少 50GB)的项目,因为我还必须使用 docker/ddev 运行其他项目,这可能是个问题,我肯定可以调整 docker 磁盘的大小,但我想知道某个项目是否有可能将数据库保留在 docker 之外...
对于普通的 docker (docker-compose) 项目,我保留了一个不在 docker 中的“数据”文件夹,如果可能的话,我想对 ddev 做或多或少相同的事情。
现在我在 OSX 上,但如果它也可以在 Win10 上运行,那就太好了。
谢谢!

最佳答案

ddev 过去常常使用绑定(bind)挂载将数据库挂载到主机上,但 docker 在这方面有很多问题,尤其是在 Windows 上。虽然它在 mac 和 Linux 上运行良好,但在 Win10 Home 上的 Docker Toolbox 上运行不佳。 Docker 卷在交互方面更可靠,速度更快,因为它们位于 linux 卷上。

但是,您可以制作一个包含如下内容的 .ddev/docker-compose.bindmountdb.yaml,它基本上切换回旧方法,并将数据库绑定(bind)挂载到项目的 . ddev/db 目录。

version: "3.6"

services:
  db:
    volumes:
    - type: "bind"
      source: "./db"
      target: "/var/lib/mysql"

关于docker - 将 DDEV 数据库挂载到主机文件系统而不是内部 docker 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397298/

相关文章:

docker - docker compose + image elasticsearch :6. 8.0 的问题

docker - 查找一个Docker容器可以从该容器中访问多少CPU

docker - Kubernetes 与 Mesos 上的 Kubernetes 对比?

php - 在带有 .htaccess 的 .html 页面上运行 php

ddev启动: web container failed (macOS Catalina using Documents folder for site)

phpstorm - 使用 DDEV 处理本地项目时如何忽略 Xdebug + PhpStorm 中的 phpstatus.php 连接?

docker - 如何在 jenkinsci/blueocean 中安装 docker-compose?

docker - 错误! Fabric Docker镜像版本1.1.0与测试网络支持的版本不匹配

docker - 如果在docker镜像中运行的马拉松应用处于 'deploying'状态,我们在哪里可以查看该应用未部署的原因?

javascript - 是否可以将 Node localhost 暴露给我的主机?