无法启动 Docker Desktop for Mac。

160
我第一次在Mac上安装了Docker桌面版,但是无法启动它。 我按照以下步骤进行安装。
- 在官方页面(https://www.docker.com/get-started)上注册并点击Mac Intel芯片的下载按钮。
- 打开Docker.dmg文件,将Docker.app拖放到Applications文件夹中。
- 在Spotlight中搜索docker并启动它。
- 在显示“Docker.app是从互联网下载的应用程序,您确定要打开它吗?”的通知屏幕上点击“打开”按钮。
此后应用程序没有任何反应。 当前状态 Applications文件夹中有一个Docker应用程序,Locations中有一个Docker(带有弹出按钮)。 我无法启动该应用程序,也无法使用任何Docker命令。 其他应用程序正常运行且没有问题。
我尝试重新启动电脑,关闭防火墙和FireVault,并重新安装,但问题仍然存在。
我使用的是MacBook Pro 16 (2019)和最新版本的macOS Big Sur 11.6。

2
你是否也通过“安全性与隐私->常规”允许了Docker?您需要先解锁,即按下左下角的锁定,以允许应用程序。 - 0xdnL
1
我在“安全性与隐私”->“通用”中找不到Docker。我认为“安全性与隐私”->“通用”只允许您设置密码以及是否仅允许从应用商店下载应用程序或者也可以从已知开发者下载。 - forestbear0110
1
尝试通过 Spotlight 启动 Docker-for-Mac。当弹出窗口“您确定要打开它吗?”出现时,请不要按“确定”,而是打开“安全性与隐私”,然后切换到“通用”选项卡,解锁,您应该会在下半部分看到一些内容。请参见 adamtheautomator.com/docker-for-mac 的第 4 步。 - 0xdnL
1
谢谢您提供非常清晰的网页。 然而,我按照页面上的建议尝试了,但在“安全与隐私”中找不到相应的条目。 - forestbear0110
2
这是解决方案:https://dev59.com/mlEG5IYBdhLWcg3wP35V - WEBjuju
经过连续4天的尝试互联网解决方案后,我升级了我的Mac操作系统,然后它就正常工作了。 - undefined
19个回答

437
我在我的Mac上遇到了相同的问题。它一直运行得很好,突然有一天停止工作了。我通过以下方法重新运行它:
1. 打开Finder,进入"应用程序 > 实用工具 > 活动监视器.app" 2. 找到"Docker"或"Docker Desktop"(在我的情况下是无响应模式),并强制关闭应用程序。 3. 在终端中运行以下命令: sudo rm -rf ~/Library/Containers/com.docker.* 4. 在终端中打开设置文件: sudo nano ~/Library/Group\ Containers/group.com.docker/settings.json 5. 然后找到"filesharingDirectories": 6. 删除该键内的所有条目,将其保留为"filesharingDirectories": [],保存并关闭文件。 7. 最后,进入应用程序文件夹,找到"Docker"并运行它(等待一段时间,它需要大约一分钟才能运行)。

2
我使用Docker Troubleshoot进行了这些操作,如清除缓存/恢复出厂设置等。 - The Onin
44
好的,谢谢。提示其他人:这将删除您所有的容器。 - Maxxer
10
我打开了“活动日志”,找到它后双击并从弹出的菜单中选择“退出进程”。然后我重新启动了Docker Desktop,它就正常打开了。 - Kmeixner
24
只需要从活动监视器中强制停止Docker,无需删除其他任何内容。步骤:
  1. 按下CMD + Space组合键,
  2. 搜索活动监视器
  3. 在活动监视器中使用搜索功能查找“docker”
  4. 强制停止所有Docker活动
  5. 启动Docker
- Emmanuel Ndukwe
5
在我的情况下,这并没有起作用,也许你可以看到问题所在,那是启动Docker桌面应用程序的第一次尝试,因此“filesharingDirectories”是主要原因,你可以搜索相关信息。 - Siddiqui Noor
显示剩余21条评论

115

我刚刚使用了与@davidjmcclelland的建议类似的方法解决了这个问题:

  1. 右键单击应用程序文件夹中的Docker
  2. 选择显示包内容
  3. 点击Contents -> MacOS -> 双击Docker exec文件

这启动了我的whale并为我打开了Docker应用程序

macOS-folder-docker


2
酷而优秀。 - Vahid Amiri
2
也适用于我 - joy_jlee
3
工作正常,比得到最高票的答案更简单,并且不需要对我的设置进行任何更改。 - darksinge
2
是的!这对我也起作用……这种方法打开了一个终端,像预期的那样启动了 Docker Desktop。但在我的情况下,我关闭了终端,然后通过 Mac Dock 再次打开它,现在一切都很好,谢谢! - Irwuin
这对我也起作用。一旦打开,我选择了将其保留在Dock中的选项,现在可以通过双击Mac Dock中的图标可靠地启动Docker桌面。 - stevehs17

44
我成功的方法是打开活动监视器并搜索“docker”。
强制退出所有与docker相关的活动。
然后再次尝试打开docker。

3
这是解决方案。 - WEBjuju
4
是的,我刚刚重启了我的电脑,然后它就正常工作了。 - Jonathan Scialpi
3
这个方法可以让你不必删除所有的Docker实例(就像被接受的答案建议的那样)就能够运行。 - Artur Müller Romanov

28
rm -rf Library/Group\ Containers/group.com.docker
rm -rf Library/Containers/com.docker.docker
rm -rf Library/Application\ Support/Docker\ Desktop 

并重新启动了Docker桌面版。

4
尝试了以上所有方法,这是唯一一个真正对我有用的。然而,它让我注销了,然后我的容器不见了。 - aprilmintacpineda

7

当我升级Docker后,它就无法工作了。我有一个未完成的MacOS升级,并且我认为Docker更新是为了最新的MacOS。我回到了旧版本的Docker下载,安装了它,现在Docker又可以正常工作了。

希望一旦MacOS升级完成,最新版本的Docker就可以正常工作,欢迎留言确认这一点。


我也是,它之前运行得很好,然后我更新了它,结果它就突然崩溃了,再也无法启动了。 - aprilmintacpineda
我也是 =( 版本为 4.14.+ 的 13.0.1 不起作用。 - antipups
1
我的解决方案解决了吗?那要么就是升级MacOS,要么就是降级Docker。虽然我更感兴趣的是升级MacOS是否能解决它。 - Oliver P
遇到了这个问题。可以确认 MacOS 13.2.1 (Intel) 可以与 Docker 4.17.0 兼容。 - Jannie Theunissen
是的 @OliverP ,可以确认升级MacOS解决了问题。谢谢! - eazy_g

7
问题很可能是 "设备上没有剩余空间",针对 Docker。
以前的答案都集中在删除所有 Docker 数据上,但如果您不想丢失工作,可以为 Docker 分配更多的空间:
  1. 使用 Activity Monitor 或 kill 命令停止 Docker(或 Docker Desktop)
  2. 检查 Docker 数据当前占用了多少空间:
$ du -sh ~/Library/Containers/com.docker.docker

3. 然后检查分配给 Docker 的内存量:
$ cat ~/Library/Group\ Containers/group.com.docker/settings.json
{
  ...
  "diskSizeMiB": 51200,
  ...
}

在这种情况下,它是50GiB,请使用您选择的编辑器增加此值并保存文件。

  1. 启动Docker(或Docker桌面版)

5

以上方法都对我没有起作用。下面的方法有效:

Mac 版本:12.5.1

  1. 从 Finder > 应用程序中删除 Docker
  2. 重启 Mac
  3. 通过命令行安装 Docker:https://docs.docker.com/desktop/install/mac-install/#install-from-the-command-line
  4. 运行以下命令
#this gives mac user name
whoami 

sudo chown -R <mac username> /Volumes
sudo chown -R <mac username> /Volumes/Data 

现在双击Finder > 应用程序 > Docker;它会打开窗口,并进入已启动状态。


1
这个答案对我起作用,结合删除以下文件:https://dev59.com/mlEG5IYBdhLWcg3wP35V#73300670 - BBK

4
在我的情况下,Docker桌面图标丢失了。通过@sepulchre01的答案方法找到这个图标后,点击Docker图标后无法显示Docker桌面。但是,Docker守护进程似乎运行正常。
 0   130     1   0 Fri05PM ??         0:00.13 /Library/PrivilegedHelperTools/com.docker.vmnetd
  501  6892  6891   0 Fri05PM ??         3:35.48 /Applications/Docker.app/Contents/MacOS/com.docker.backend -watchdog -native-api
  501  6893  6892   0 Fri05PM ??         0:07.17 /Applications/Docker.app/Contents/MacOS/com.docker.backend -watchdog -native-api
  501  6899  6892   0 Fri05PM ??         0:39.05 com.docker.vpnkit --ethernet fd:3 --diagnostics fd:4 --pcap fd:5 --vsock-path vms/0/connect --host-names host.docker.internal,docker.for.mac.host.internal,docker.for.mac.localhost --listen-backlog 32 --mtu 1500 --allowed-bind-addresses 0.0.0.0 --http /Users/xxxx/Library/Group Containers/group.com.docker/http_proxy.json --dhcp /Users/xxxx/Library/Group Containers/group.com.docker/dhcp.json --port-max-idle-time 300 --max-connections 2000 --gateway-ip 192.168.65.1 --host-ip 192.168.65.2 --lowest-ip 192.168.65.3 --highest-ip 192.168.65.254 --gc-compact-interval 1800
  501  6901  6892   0 Fri05PM ??         0:10.03 docker serve --address unix:///Users/xxxx/.docker/run/docker-cli-api.sock
  501  6909  6892   0 Fri05PM ??         0:05.09 com.docker.driver.amd64-linux -addr fd:3 -debug -native-api
  501  6910  6892   0 Fri05PM ??         0:06.15 com.docker.extensions -address extension-manager.sock -watchdog
  501  6911  6892   0 Fri05PM ??         0:02.38 com.docker.dev-envs
  501  6920  6909   0 Fri05PM ??         0:02.87 /Applications/Docker.app/Contents/MacOS/com.docker.driver.amd64-linux -addr fd:3 -debug -native-api
  501  6933  6909   0 Fri05PM ??        56:52.24 com.docker.hyperkit -A -u -F vms/0/hyperkit.pid -c 2 -m 5120M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-vpnkit,path=vpnkit.eth.sock,uuid=0d513cbc-4d03-4545-b23b-805e5d9d31d8 -U a94747d2-6ca0-4242-9d8b-a2ff5c0a142e -s 2:0,virtio-blk,/Users/xxxx/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw -s 3,virtio-sock,guest_cid=3,path=vms/0,guest_forwards=1525 -s 4,virtio-rnd -l com1,null,asl,log=vms/0/console-ring -f kexec,/Applications/Docker.app/Contents/Resources/linuxkit/kernel,/Applications/Docker.app/Contents/Resources/linuxkit/initrd.img,earlyprintk=serial page_poison=1 vsyscall=emulate panic=1 nospec_store_bypass_disable noibrs noibpb no_stf_barrier mitigations=off linuxkit.unified_cgroup_hierarchy=1 console=ttyS0 console=ttyS1 tsc=reliable noapic vpnkit.connect=connect://2/1999 vpnkit.disable=osxfs-data
  501 26403     1   0  9:00PM ??         0:01.31 com.docker.vpnkit --ethernet fd:3 --diagnostics fd:4 --pcap fd:5 --vsock-path vms/0/connect --host-names host.docker.internal,docker.for.mac.host.internal,docker.for.mac.localhost --listen-backlog 32 --mtu 1500 --allowed-bind-addresses 0.0.0.0 --http /Users/xxxx/Library/Group Containers/group.com.docker/http_proxy.json --dhcp /Users/xxxx/Library/Group Containers/group.com.docker/dhcp.json --port-max-idle-time 300 --max-connections 2000 --gateway-ip 192.168.65.1 --host-ip 192.168.65.2 --lowest-ip 192.168.65.3 --highest-ip 192.168.65.254 --gc-compact-interval 1800
  501 26405     1   0  9:00PM ??         0:00.51 docker serve --address unix:///Users/xxxx/.docker/run/docker-cli-api.sock
  501 26412     1   0  9:00PM ??         0:00.26 com.docker.dev-envs

然后我尝试卸载 Docker 并根据此链接重新安装最新的 Docker 版本。

sudo rm -Rf /Applications/Docker.app
sudo rm -f /usr/local/bin/docker
sudo rm -f /usr/local/bin/docker-machine
sudo rm -f /usr/local/bin/com.docker.cli
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/local/bin/docker-compose-v1
sudo rm -f /usr/local/bin/docker-credential-desktop
sudo rm -f /usr/local/bin/docker-credential-ecr-login
sudo rm -f /usr/local/bin/docker-credential-osxkeychain
sudo rm -f /usr/local/bin/hub-tool
sudo rm -f /usr/local/bin/hyperkit
sudo rm -f /usr/local/bin/kubectl.docker
sudo rm -f /usr/local/bin/vpnkit
sudo rm -Rf ~/.docker
sudo rm -Rf ~/Library/Containers/com.docker.docker
sudo rm -Rf ~/Library/Application\ Support/Docker\ Desktop
sudo rm -Rf ~/Library/Group\ Containers/group.com.docker
sudo rm -f ~/Library/HTTPStorages/com.docker.docker.binarycookies
sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
sudo rm -f /Library/LaunchDaemons/com.docker.vmnetd.plist
sudo rm -Rf ~/Library/Logs/Docker\ Desktop
sudo rm -Rf /usr/local/lib/docker
sudo rm -f ~/Library/Preferences/com.docker.docker.plist
sudo rm -Rf ~/Library/Saved\ Application\ State/com.electron.docker-frontend.savedState
sudo rm -f ~/Library/Preferences/com.electron.docker-frontend.plist

现在Docker运行良好。

  • 最新的Docker版本:Docker Desktop 4.11.1
  • Mac系统:12.1 Monterey Inter Core

3

我刚刚重新下载了dmg文件并重新安装了应用程序,选择了 "替换"。之后一切都正常了。


2

最受欢迎的答案来自Siddiqui Noor,第一次使用就成功了。但这不是一劳永逸的解决方法。每次我想打开Docker Desktop时,都需要执行相同的步骤,这是不现实的。

一劳永逸的解决方法是:

  1. 在应用程序文件夹中右键单击Docker
  2. 选择“显示包内容”
  3. 点击Contents -> MacOS -> 右键单击Docker Desktop
  4. 选择“创建别名”。

别名将被创建在同一目录中。将别名移动到应用程序文件夹中。现在,您可以可靠地在应用程序文件夹中打开Docker Desktop或在启动台中找到它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接