【问题标题】:Why has Docker volume run out of space?为什么 Docker 卷空间不足?
【发布时间】:2021-05-07 18:25:46
【问题描述】:

Dockerized 数据库将不再启动,因为...

FATAL:  could not write lock file "postmaster.pid": No space left on device

我的硬盘上有数百 Gb 可用空间,但我确实相信 某事 空间已用完。在尝试从备份恢复 45Gb 数据库后,这个问题首次出现。在那段时间里,我的Docker.qcow2 文件膨胀到了 60Gb。 Hypervisor 是否对该 VM 文件的大小有一些限制?使用 Docker for Mac。

编辑: 只是想明确一下,我的用例确实需要那么多磁盘空间,但是如果您还没有尝试过 prune,那么请先尝试最受好评的答案。

这似乎是一个线索,当我从docker-compose.yml 中删除这些行时,我以某种方式得到了同样的错误:

volumes:
  - website_database_volume:/var/lib/postgresql/data

(是的,我通过弄乱其他属性来检查我是否在文件的正确部分)

docker system df的输出

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              21                  16                  4.58 GB             -7.44e+09 B (-162%)
Containers          827                 3                   28.69 MB            28.69 MB (99%)
Local Volumes       5                   5                   57.02 GB            0 B (0%)

【问题讨论】:

  • VirtualBox VM 的默认磁盘大小为 20GB;你把它设置为更大的吗?此外,有些人在这里成功地将 Docker 的内存从 2048(默认)增加到 4096
  • 我不认为 VirtualBox 与 Docker For Mac 有关。使用 VirtualBox 软件是一种进入 Hypervisor 引擎盖的方法吗?我真的不能让它拥有更多的内存。另一个链接是关于我没有使用的 boot2docker。
  • @Adamantish 例如,您是否检查过docker system df 是否可以删除任何内容?如果没有什么可以删除,那么我认为你需要调整 qcow2 文件的大小
  • @Salem 谢谢,我刚看了。没有什么大的东西可以回收。所以这是违背他们的承诺吗? docs.docker.com/docker-for-mac/docker-toolbox/… “使用 Docker for Mac,你只得到一个 VM,你不需要管理它。它由 Docker for Mac 应用程序管理。”所以绕过它肯定不会造成麻烦?

标签: docker docker-compose


【解决方案1】:

解决 docker-for-mac 问题对我有用的解决方案(数百个 cmets 以便您阅读它们):

docker system prune -a

最终结果

.... 已删除:sha256:c9d802a5c476d3100dfd62787867736f57177840605c6604ec845b9156e04603 已删除:sha256:f29af3b4c73780af53dd27f68cde554260185c89b3f26106491a7e29c1bca2f1 已删除:sha256:ea52b02280d9e96b22f25cc8f569c72e90ca4297f0c5ca3076f22e28d0c2f9b4 已删除:sha256:1e1c2966def79a1a2745bbb8589fbb6de6dcbbef049fa075f8974655f2ac0e7a 已删除:sha256:2e37924689f1bcd52df62e77fa37584fcb2d787dfa3787b71e7910f479455de9 已删除:sha256:ce5059dd22f090e710f834101b6c33b0567e6e8c13dcaed344f6e2d54678dea5 已删除:sha256:d48a21f58ae245ccdebc29d8f01fae42ce85842b4ea4de32902fb55a0a00ee03 已删除:sha256:5983b1164ccb0e6ac7a2dab6a6e29efaa11fcdf1350e91ff2aab919c31d63934 已删除:sha256:6049f38e8c033dea5e5b7ee7abd5b1af20e5c77f570752b560e49e51c35cc4df 已删除:sha256:d2987ea1ae6dfc8f2f3b07fd4e5802feab53e95c1590f12453166d2f57d2f301 已删除:sha256:8f3411639785500fb0133ca55d2639e0661ceb439417574adf084341905dd3d0 已删除:sha256:b7b7fbb077245d146b83458cb5099b22cf667f82342d7eed0b16f8e5f641149f 已删除:sha256:d0a6c2235a31bee1812d9db1afdf5ec5ff5eec53218e05d328db9c09bfded893 已删除:sha256:be2878c078e2df267e68687181f8373a31853f79086cac36edbf81ce07b40b28 已删除:sha256:fe4c16cbf7a4c70a5462654cf2c8f9f69778db280f235229bd98cf8784e878e4 总回收空间:53.43GB

注意:这也删除了一些我有一段时间没有使用的基本图像,所以要为一些附带损害做好准备。

【讨论】:

  • 这对很多人来说都很棒。应该注意的是,如果您确实需要积极使用大量磁盘空间(就像我为大型数据库所做的那样),那么您将无法解决问题。
【解决方案2】:

事实证明这是一个已知问题,目前在测试版中有修复:https://github.com/docker/for-mac/issues/371#issuecomment-262826610

感谢其中一位 hyperkit 贡献者为我指明了这个方向。

【讨论】:

    【解决方案3】:

    这对我有用

    docker 图像 -f "dangling=true"

    docker rmi

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2015-12-04
      • 1970-01-01
      • 2018-03-09
      • 2019-02-11
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多