21

我有一个大型 (100gb+) 数据库,我正在尝试使用官方 postgres image运行。

我无法将数据存储在 docker 卷中,因为~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2Docker for Mac 中的文件的大小限制约为 60gb。

我对将主机目录挂载为卷犹豫不决,因为挂载的主机目录卷中的文件访问比常规卷慢得多。

这些是一些有用的链接,可以更详细地讨论这些问题:

  • 这里讨论 Docker.qcow2 文件的大小限制
  • 也讨论了 Docker.qcow2 文件的大小限制
  • 讨论了挂载的主机目录卷速度问题
  • 很好地描述了如何用可以变大的文件替换 Docker.qcow2 文件
  • 讨论了 Docker.qcow2 文件如何在其内容被删除时不缩小(这没有直接关系,但会使问题进一步复杂化)

你们都只是吃掉速度损失并挂载主机目录吗?您是否手动创建了一个可以使用 qemu 变大的 qcow2 文件(如果这样做,您是否需要在升级之间维护此文件)?你会做其他事情来处理这个问题吗?

4

3 回答 3

2

以下脚本删除并重新创建一个新的缩小的 Docker.qcow2 文件,保留作为参数传递的图像。

https://blog.mrtrustor.net/post/clean-docker-for-mac/

希望这可以帮助。

于 2017-03-19T17:47:27.770 回答
1

Docker for Mac 18.06从 qcow2 文件格式切换到原始文件格式,从而提高了速度和磁盘使用率。核心问题仍然存在,因为 Docker 可用于所有数据的空间有限。但是,您现在可以在 Preferences -> Disk -> Disk image size 中设置该限制。

Docker for Mac 版本17.12是第一个引入原始文件格式的版本,但在初始版本中存在一些错误,导致他们暂时将其作为一项功能删除。您可以在该页面中搜索“原始”以回顾该功能的历史记录。

这里有一个很好的说明,关于 Docker for Mac 如何报告其磁盘使用情况......

这将显示逻辑大小:

ls -alh ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

虽然这将显示物理尺寸:

du -h ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

于 2018-08-21T14:10:23.577 回答
1

对于这样的情况,我肯定会建议创建一个可以变大的 qcow 图像。

这是一个相对简单的过程,您可以获得运行大型数据库时通常非常必要的性能优势。

于 2016-10-13T17:31:32.197 回答