Docker Desktop on Crostini

1,186 views
Skip to first unread message

Gabriel Genkov

unread,
Apr 26, 2023, 11:25:50 PM4/26/23
to ChromiumOS Discussion
Hello, I am trying to run docker desktop on my chromebook but i am experiancing a issue. I have completely set up docker engine and its working. I have also completed the full set up for docker desktop from the docs https://docs.docker.com/desktop/install/debian/ and after i run the app it displays "Starting the docker engine" unlimitely. Do you know what i can do?

dragon788

unread,
Apr 28, 2023, 7:11:41 PM4/28/23
to genk...@gmail.com, ChromiumOS Discussion
My suspicion is the feature for kubernetes maybe turned on by default and that won't work correctly inside Crostini last I checked so may be hanging things.

On Wed, Apr 26, 2023, 10:25 PM Gabriel Genkov <genk...@gmail.com> wrote:
Hello, I am trying to run docker desktop on my chromebook but i am experiancing a issue. I have completely set up docker engine and its working. I have also completed the full set up for docker desktop from the docs https://docs.docker.com/desktop/install/debian/ and after i run the app it displays "Starting the docker engine" unlimitely. Do you know what i can do?

--
--
Chromium OS Discussion mailing list: chromium-...@chromium.org
View archives, change email options, or unsubscribe:
https://groups.google.com/a/chromium.org/group/chromium-os-discuss
---
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-os-dis...@chromium.org.

Gabriel Genkov

unread,
Apr 29, 2023, 11:23:07 AM4/29/23
to ChromiumOS Discussion, dragon788, ChromiumOS Discussion, genk...@gmail.com
I figured out a step further. That sock files are missing (lifecycle-server.sock, memlogdq.sock, and http-proxy-control.sock) and that causes the app from not starting!
Here is the log from running command ```systemctl --user status docker-desktop```:
ocker-desktop.service - Docker Desktop Loaded: loaded (/usr/lib/systemd/user/docker-desktop.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2023-04-28 19:13:52 EEST; 40min ago Main PID: 757 (com.docker.back) CGroup: /user.slice/user-1000.slice/us...@1000.service/app.slice/docker-desktop.service ├─757 /opt/docker-desktop/bin/com.docker.backend ├─770 /opt/docker-desktop/Docker Desktop --name=new-license --enable-crashpad ├─774 /opt/docker-desktop/Docker Desktop --type=zygote --no-zygote-sandbox --enable-crashpad --enable-crashpad ├─775 /opt/docker-desktop/Docker Desktop --type=zygote --enable-crashpad --enable-crashpad ├─777 /opt/docker-desktop/Docker Desktop --type=zygote --enable-crashpad --enable-crashpad ├─806 /opt/docker-desktop/Docker Desktop --type=gpu-process --enable-crashpad --enable-crash-reporter=2d47f045-465a-4639-9ce5-cd82657450fc,no_channel --user-data-dir=/home/genkovgg/.config/Docker Desktop --gpu-preferences=WAAAAAAAAAAgAAAIAAAAAAAAAAAAAAAAAABgAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAABAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --shared-files --field-trial-handle=0,i,1725449363134225243,14587457701160592328,131072 --disable-features=SpareRendererForSitePerProcess ├─809 /opt/docker-desktop/chrome_crashpad_handler --monitor-self-annotation=ptype=crashpad-handler --no-rate-limit --database=/home/genkovgg/.docker/desktop/log/host/electron-crash-reports --annotation=_productName=Docker Desktop --annotation=_version=4.18.0 --annotation=lsb-release=Debian GNU/Linux 11 (bullseye) --annotation=plat=Linux --annotation=prod=Electron --annotation=ver=20.3.8 --initial-client-fd=78 --shared-client-connection └─811 /opt/docker-desktop/Docker Desktop --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --enable-crashpad --crashpad-handler-pid=809 --enable-crash-reporter=2d47f045-465a-4639-9ce5-cd82657450fc,no_channel --user-data-dir=/home/genkovgg/.config/Docker Desktop --standard-schemes --secure-schemes --bypasscsp-schemes --cors-schemes --fetch-schemes=docker-hub --service-worker-schemes --streaming-schemes --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,1725449363134225243,14587457701160592328,131072 --disable-features=SpareRendererForSitePerProcess --enable-crashpad Apr 28 19:54:01 penguin com.docker.backend[757]: [2023-04-28T16:54:01.398053562Z][com.docker.backend][I] (7fbd46cf-4) b0da6ede-stats C->S VMDockerdAPI GET /ping Apr 28 19:54:01 penguin com.docker.backend[757]: [2023-04-28T16:54:01.399104115Z][com.docker.backend][W] (7fbd46cf-4) b0da6ede-stats C<-S NoResponse GET /ping (1.041894ms): Get "http://ipc/ping": dial unix lifecycle-server.sock: connect: no such file or directory Apr 28 19:54:02 penguin com.docker.backend[757]: [2023-04-28T16:54:02.008170251Z][com.docker.backend][W] unable to download logs from VM. Will retry in 5s. Error was: dial unix memlogdq.sock: connect: no such file or directory Apr 28 19:54:02 penguin com.docker.backend[757]: [2023-04-28T16:54:02.400942586Z][com.docker.backend][I] (7fbd46cf-5) b0da6ede-stats C->S VMDockerdAPI GET /ping Apr 28 19:54:02 penguin com.docker.backend[757]: [2023-04-28T16:54:02.402182488Z][com.docker.backend][W] (7fbd46cf-5) b0da6ede-stats C<-S NoResponse GET /ping (1.219796ms): Get "http://ipc/ping": dial unix lifecycle-server.sock: connect: no such file or directory Apr 28 19:54:02 penguin com.docker.backend[757]: [2023-04-28T16:54:02.404440496Z][com.docker.backend][W] still waiting to update HTTP proxy on http-proxy-control.sock after 40m5.90651063s. Last error was Post "http://localhost/http_proxy.json": dial unix http-proxy-control.sock: connect: no such file or directory Apr 28 19:54:03 penguin com.docker.backend[757]: [2023-04-28T16:54:03.403358984Z][com.docker.backend][I] (7fbd46cf-6) b0da6ede-stats C->S VMDockerdAPI GET /ping Apr 28 19:54:03 penguin com.docker.backend[757]: [2023-04-28T16:54:03.404604987Z][com.docker.backend][W] (7fbd46cf-6) b0da6ede-stats C<-S NoResponse GET /ping (1.241708ms): Get "http://ipc/ping": dial unix lifecycle-server.sock: connect: no such file or directory Apr 28 19:54:04 penguin com.docker.backend[757]: [2023-04-28T16:54:04.406371803Z][com.docker.backend][I] (7fbd46cf-7) b0da6ede-stats C->S VMDockerdAPI GET /ping Apr 28 19:54:04 penguin com.docker.backend[757]: [2023-04-28T16:54:04.407534246Z][com.docker.backend][W] (7fbd46cf-7) b0da6ede-stats C<-S NoResponse GET /ping (1.151003ms): Get "http://ipc/ping": dial unix lifecycle-server.sock: connect: no such file or directory" that was the logs of the outp
I didnt found any helpful info on the internet.

dragon788 (dragon788)

unread,
May 3, 2023, 3:12:17 PM5/3/23
to ChromiumOS Discussion, Gabriel Genkov, dragon788, ChromiumOS Discussion
This is maybe close to the dumbest workaround I've ever had to do, but the issue appears to be when it tries to use `/home` as a default in the `"filesharingDirectories":` that it can't start.

Stop any attempts at running Docker Desktop by running this in the terminal, `systemctl stop --user docker-desktop`

Edit Docker Desktop's settings.json with your favorite editor `nano ~/.docker/desktop/settings.json` and remove the contents of the `"filesharingDirectories": [ "/home" ],` so it is just two empty square brackets ie `"filesharingDirectories": [ ],` and then save the file and try opening Docker Desktop again.

Unfortunately it looks like ANY path being specified in the filesharing directories causes it to fail, it doesn't appear to matter whether useGrpcfuse is enabled or disabled and it doesn't appear the Virtiofs toggle helps at all.

It may be something about running under "nested virtualization" ie Linux apps on ChromeOS run inside a VM named Termina that in turn hosts a Debian LXD container which is what users interact with, but I have a feeling it is more an issue of Docker trying to be clever with permissions and not expecting the setup that Crostini uses.

I don't have time to play with it more today, but you CAN apparently create volumes if you need to persist data, and then it might be possible to copy data out using `docker cp` from the command line, but I haven't tested that yet.

Because of the extra layers of indirection, I would HIGHLY recommend just using the Docker CLI (completely uninstall Docker Desktop and just install docker-ce) as you are IN native Linux and will be able to bind mount and create volumes without the extra pain induced by Docker Desktop's architecture decisions.

This is the actual error you will likely see if you try adding a new fileshare through the UI after getting the app to start with the workaround above.

# this is a VERY long line, TL;DR it can't mount 
lifecycle-server bootstrap failed: mounting host fileserver: mounting host fileserver: running "mount -t virtiofs -onosuid,nodev virtiofs0 /host_mnt/home", output "mount: /host_mnt/home: wrong fs type, bad option, bad superblock on virtiofs0, missing codepage or helper program, or other error.

Gabriel Genkov

unread,
May 4, 2023, 3:44:21 AM5/4/23
to dragon788 (dragon788), ChromiumOS Discussion
That workaround `nano ~/.docker/desktop/settings.json` and removing the values from the list of filesharingDirectories field worked. Thx a lot. Hope this helps other people as well!!
Reply all
Reply to author
Forward
0 new messages