Docker Desktop not starting up on MacOS Monterey

This is why I like to create tutorials, because I always learn something too. So I was preparing for a presentation and I tried to intentionally stop the docker daemon inside the container. I could not run any container obviously, so I wanted to check if I could still log in the virtual machine, where I got this error message immediately:

[2022-08-20T14:30:05.236083042Z][vpnkit-bridge][W] guest: docker: cannot dial dial unix /run/guest-services/docker.sock: connect: connection refused
Failed to fire hook: unable to create a log file for vpnkit-bridge in directory /root/.docker/desktop/log/host: creating /root/.docker/desktop/log/host: mkdir /root/.docker: read-only file system

I ran this command to find the desktop folder:

find / -name "desktop"

I got this:

/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/allowlist/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/allowlist/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/socks/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/socks/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/sntpc/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/sntpc/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/http-proxy/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/http-proxy/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/volume-contents/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/volume-contents/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/docker/rootfs/run/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/docker/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/docker/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/docker/tmp/upper/run/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/dns-forwarder/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/dns-forwarder/tmp/upper/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/diagnose/rootfs/root/.docker/desktop
/var/lib/mount-services-cache/entries/services.tar/b847918d04f7fdcb717f385e0b9e794e0c5546b27b7b5261bef51db8c41e13d1/containers/services/diagnose/tmp/upper/root/.docker/desktop
/run/desktop
/containers/services/allowlist/rootfs/root/.docker/desktop
/containers/services/allowlist/tmp/upper/root/.docker/desktop
/containers/services/socks/rootfs/root/.docker/desktop
/containers/services/socks/tmp/upper/root/.docker/desktop
/containers/services/sntpc/rootfs/root/.docker/desktop
/containers/services/sntpc/tmp/upper/root/.docker/desktop
/containers/services/http-proxy/rootfs/root/.docker/desktop
/containers/services/http-proxy/tmp/upper/root/.docker/desktop
/containers/services/volume-contents/rootfs/root/.docker/desktop
/containers/services/volume-contents/tmp/upper/root/.docker/desktop
/containers/services/docker/rootfs/run/desktop
/containers/services/docker/rootfs/root/.docker/desktop
/containers/services/docker/tmp/upper/root/.docker/desktop
/containers/services/docker/tmp/upper/run/desktop
/containers/services/dns-forwarder/rootfs/root/.docker/desktop
/containers/services/dns-forwarder/tmp/upper/root/.docker/desktop
/containers/services/diagnose/rootfs/root/.docker/desktop
/containers/services/diagnose/tmp/upper/root/.docker/desktop
/containers/onboot/010-mount-services/tmp/upper/root/.docker/desktop
/containers/onboot/006-metadata/tmp/upper/root/.docker/desktop

So I checked this folder:

find /containers/services/docker/rootfs/root/.docker/desktop
/containers/services/docker/rootfs/root/.docker/desktop
/containers/services/docker/rootfs/root/.docker/desktop/log
/containers/services/docker/rootfs/root/.docker/desktop/log/host
/containers/services/docker/rootfs/root/.docker/desktop/log/host/lifecycle-server.log
ctr -n services.linuxkit container info vpnkit-forwarder

The output contains:

        "root": {
            "path": "/containers/services/vpnkit-forwarder/rootfs"
        },

So that readonly filesystem error was just a result and not the cause. For some reason, docker could not start and a systemc container had no permission to create log files to report that error (I guess). In my case I caused the issue manually, but I don’t know what happened in your case.