Mac下Docker Desktop starting的解决方法

记录下自己在新增了一个新的容器后,Disk Size过大导致启动Docker Desktop会一直卡在Docker Desktop starting,并且重启无效的解决方法。该方法无需重新卸载,并且能保留原有的镜像和容器。

一、确认问题

首先确认Docker.raw大小以确认是否和笔者同样的问题,笔者是因为Virtual disk limit默认64G,但是新增的镜像和容器超限了,导致一直启动中

1、Virtual disk limit

查看自己的Virtual disk limit值,在Settings->Resource->Virtual disk limit选项下,默认情况下Docker Desktop的Virtual disk limit只有64G。这里因为我们Docker Desktop 一直处于starting,所以我们无法直接去修改,这是正常情况下的截图。

2、Docker.raw

2.1、什么是Docker.raw

在Docker Desktop中,docker.raw 文件通常用于存储 Docker 容器的数据。具体来说,它是用来存储 Docker 镜像、容器数据以及其他相关数据的二进制文件。

当我们在 Docker Desktop 上创建、运行、停止或删除容器时,相关的数据会被存储在docker.raw 文件中。这个文件实际上是一个虚拟磁盘镜像,类似于虚拟机中的虚拟硬盘。Docker Desktop使用这个文件作为本地的存储介质,方便地管理容器的数据。

通常情况下,用户无需直接操作 docker.raw 文件,Docker Desktop会自动管理这个文件的创建、扩容和删除等操作。用户只需要通过 Docker Desktop 提供的命令行界面或者图形界面来管理 Docker 容器即可。

2.2、确认Docker.raw大小

该文件在Mac中的路径一般是(或者是com.docker.docker):

bash 复制代码
# macOS 上使用的虚拟硬盘文件路径
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

如果该文件如果接近于64G,基本可以判断是因为Virtual disk limit超限。

二、解决问题

因为Docker Desktop 一直处于starting,所以我们无法直接去修改。这里分三步走:

  1. 首先我们将Docker.raw复制一份保留起来,防止误操作(这里单纯是防止误操作)。
  2. 我们在强制退出Docker Desktop。直接修改虚拟硬盘文件路径下的Docker.raw名称,比如Docker_copy.raw。再重启Docker Desktop。你会发现Docker Desktop可以正常启动,但是镜像和容器都不见了,因为加载不到旧的Docker.raw,所以原先的目录下新生成了一个新的Docker.raw。
  3. 我们将Settings->Resource->Virtual disk limit选项设置为128G或者更大的值,并将新生成的Docker.raw删除,Docker_copy.raw改回Docker.raw,并重启,这时候即可解决问题

设置Virtual disk limit成功后,在左下角可以看到虚拟磁盘"可使用/总共"的值

其实解决思路无非是将Virtual disk limit值增大以适应咱们越来越臃肿的docker开发环境。

相关推荐
上海蓝色星球4 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
logic_56 小时前
静态路由配置
运维·服务器·网络
zhuzewennamoamtf7 小时前
Linux内核platform抽象、数据结构、内核匹配机制
linux·运维·数据结构
门思科技7 小时前
企业级 LoRaWAN 网关远程运维方案对比:VPN 与 NPS FRP 的技术与安全差异分析
运维·网络·安全
云和数据.ChenGuang7 小时前
Deepseek 持续迭代的模型
运维·运维技术·数据库运维工程师·运维教程
物联网软硬件开发-轨物科技7 小时前
【轨物方案】聚焦锯床设备智能化升级,打造工业互联网新范式
运维·科技·物联网
运维栈记7 小时前
如何排错运行在Kubernetes集群中的服务?
云原生·容器·kubernetes
suzhou_speeder8 小时前
企业数字化网络稳定运行与智能化管理解决方案
运维·服务器·网络·交换机·poe·poe交换机
Linux编程用C8 小时前
Docker+Vscode搭建(本地/远程)开发环境
vscode·后端·docker
RisunJan8 小时前
Linux命令-grpck命令(验证和修复组配置文件(`/etc/group` 和 `/etc/gshadow`)完整性的工具)
linux·运维·服务器