for-mac icon indicating copy to clipboard operation
for-mac copied to clipboard

Changing of Settings -> Advanced -> Disk Image location fails

Open tengelmeier opened this issue 2 years ago • 17 comments
trafficstars

  • [x] I have tried with the latest version of Docker Desktop
  • [x] I have tried disabling enabled experimental features
  • [ ] I have uploaded Diagnostics
  • Diagnostics ID:

Expected behavior

After changing Settings -> Advanced -> Disk Image location to an external volume, either a.) docker restarts with no disk images or b.) docker moves existing images to the new location and restarts

Actual behavior

Beachball in settings forever, no data copied / moved to the new location (After some hours of beachballing I had a kernel panic / computer shut down, not sure if this is related)

After mac reboot I tried it again with the same result

Information

  • macOS Version: 13.3 (22E252)
  • Intel chip or Apple chip: Intel
  • Docker Desktop Version: v4.18.0

Output of /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check

Looks like docker is not running while the settings are reapplied

/Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
[2023-04-08T10:04:28.951323000Z][com.docker.diagnose][I] set path configuration to OnHost Starting diagnostics

[PASS] DD0027: is there available disk space on the host? [SKIP] DD0028: is there available VM disk space? [PASS] DD0018: does the host support virtualization? [PASS] DD0001: is the application running? [PASS] DD0017: can a VM be started? [PASS] DD0016: is the LinuxKit VM running? [FAIL] DD0011: are the LinuxKit services running? failed to ping VM diagnosticsd with error: Get "http://ipc/ping": EOF [2023-04-08T10:04:28.984250000Z][com.docker.diagnose][I] ipc.NewClient: f1e501fd-diagnose -> diagnosticd.sock diagnosticsd [2023-04-08T10:04:28.984539000Z][com.docker.diagnose][I] (389bb27e) f1e501fd-diagnose C->S diagnosticsd GET /ping [2023-04-08T10:04:28.985536000Z][com.docker.diagnose][W] (389bb27e) f1e501fd-diagnose C<-S NoResponse GET /ping (975.999µs): Get "http://ipc/ping": EOF

[FAIL] DD0004: is the Docker engine running? Get "http://ipc/docker": EOF [2023-04-08T10:04:28.986583000Z][com.docker.diagnose][I] ipc.NewClient: 05bd6aec-com.docker.diagnose -> lifecycle-server.sock VMDockerdAPI [2023-04-08T10:04:28.986984000Z][com.docker.diagnose][I] (e3fe61e0) 05bd6aec-com.docker.diagnose C->S VMDockerdAPI GET /docker [2023-04-08T10:04:28.988039000Z][com.docker.diagnose][W] (e3fe61e0) 05bd6aec-com.docker.diagnose C<-S NoResponse GET /docker (1.038599ms): Get "http://ipc/docker": EOF [...]

[PASS] DD0015: are the binary symlinks installed? [FAIL] DD0031: does the Docker API work? error during connect: Get "http://docker.raw.sock/v1.24/containers/json?limit=0": EOF [PASS] DD0013: is the $PATH ok? Error response from daemon: Bad response from Docker engine [FAIL] DD0003: is the Docker CLI working? exit status 1 [PASS] DD0038: is the connection to Docker working? [PASS] DD0014: are the backend processes running? [PASS] DD0007: is the backend responding? [PASS] DD0008: is the native API responding? [PASS] DD0009: is the vpnkit API responding? [PASS] DD0010: is the Docker API proxy responding? [SKIP] DD0030: is the image access management authorized? [PASS] DD0033: does the host have Internet access? [PASS] DD0018: does the host support virtualization? [PASS] DD0001: is the application running? [PASS] DD0017: can a VM be started? [PASS] DD0016: is the LinuxKit VM running? [WARN] DD0011: are the LinuxKit services running? failed to ping VM diagnosticsd with error: Get "http://ipc/ping": EOF [WARN] DD0004: is the Docker engine running? Get "http://ipc/docker": EOF [PASS] DD0015: are the binary symlinks installed? [WARN] DD0031: does the Docker API work? error during connect: Get "http://docker.raw.sock/v1.24/containers/json?limit=0": EOF [WARN] DD0032: do Docker networks overlap with host IPs? error during connect: Get "http://docker.raw.sock/v1.24/networks": EOF

Steps to reproduce the behavior

df

tengelmeier avatar Apr 08 '23 10:04 tengelmeier

Also having this issue on macOS (13.5, docker desktop 4.22.0). When I was looking it up I came across this, which is the same thing happening on Windows.

beeradmoore avatar Aug 24 '23 22:08 beeradmoore

I and my colleague can reproduce the problem. Disk image location cannot be changed (change does not take effect) in MacOS 13.5.2 Docker Desktop v4.24.0.

Setting a new Disk Image Location in Docker Desktop settings will create an empty folder. The VM image stays in the default location. When Docker Desktop is restarted, the path in Disk Image Location is reverted back to the default path (where the VM image always existed).

TL;DR The Disk Image is never created in the changed location.

pre avatar Oct 03 '23 08:10 pre

@pre can you share a diagnostics id to help us troubleshooting?

bsousaa avatar Oct 03 '23 08:10 bsousaa

@bsousaa I can reproduce the issue with fresh installation of Docker Desktop v4.24.0 on macOS 13.6 (22G120).

I submitted a diagnostic id via Docker Support.

aom avatar Oct 03 '23 09:10 aom

@aom can you share the id in this thread?

bsousaa avatar Oct 03 '23 09:10 bsousaa

Sorry but I'll rather send it via official channels as I did because it contains a lot of information about the running environment.

aom avatar Oct 03 '23 10:10 aom

it's an id to access data through internal tooling. This is an official channel. But sure, feel free to go through Docker Support if you are eligible.

bsousaa avatar Oct 03 '23 10:10 bsousaa

I would be totally ok with a workaround myself. Some windows users report being able to change the location by changing it in settings.json while Docker Desktop is not running.

But settings.json is not where it is supposed to be according to docs: https://docs.docker.com/desktop/settings/mac/

❯ cat ~/Library/Group Containers/group.com.docker/settings.json
cat: /Users/<username>/Library/Group: No such file or directory
cat: Containers/group.com.docker/settings.json: No such file or directory

aom avatar Oct 03 '23 10:10 aom

@bsousaa My diagnostics id is 00539E12-746B-4AED-89AB-104EE079BDB6/20231003102556

Notice that in this case the local directory has already been reverted by Docker Desktop.

pre avatar Oct 03 '23 10:10 pre

I would be totally ok with a workaround myself. Some windows users report being able to change the location by changing it in settings.json while Docker Desktop is not running.

But settings.json is not where it is supposed to be according to docs: https://docs.docker.com/desktop/settings/mac/

❯ cat ~/Library/Group Containers/group.com.docker/settings.json
cat: /Users/<username>/Library/Group: No such file or directory
cat: Containers/group.com.docker/settings.json: No such file or directory

@aom please try cat ~/Library/"Group Containers"/group.com.docker/settings.json

MihaelaStoica avatar Oct 03 '23 12:10 MihaelaStoica

I'm having a similar problem. When I attempt to change the Disk Image Location, I can see that there is a "Docker Desktop" folder created under the folder I choose, but it never gets used, and when I go back and look at Disk Image Location it is reverted back to the original location.

creechy avatar Oct 18 '23 15:10 creechy

I'm having a similar problem. When I attempt to change the Disk Image Location, I can see that there is a "Docker Desktop" folder created under the folder I choose, but it never gets used, and when I go back and look at Disk Image Location it is reverted back to the original location.

This is exactly what happens. Yes!

pre avatar Oct 18 '23 15:10 pre

Anyone find a solution to this? Experiencing this issue with Docker 4.26.1.

nothing2obvi avatar Dec 26 '23 04:12 nothing2obvi

[DockerDesktop 4.26.1]

Cannot change Disk Image Location! Self-Diagnose says "No fatal errors detected." everything has passed. I even tried this experiment several times. Cannot change the disk image location through the setting Cannot change docker.raw location.

Once I changed the location, settings.json(group.com.docker) has been moved back to its original location directory. and old conatiners/images have gone ! This is really weird.

I followed the official help link(https://docs.docker.com/desktop/faqs/macfaqs/#how-do-i-move-the-file-to-a-bigger-drive )

curiouscod3 avatar Jan 10 '24 20:01 curiouscod3

This is pretty irritating... here's a gist of some relevant logs:

https://gist.github.com/hut8/2a3964a2a26743f882091613dfd88861

Trying to move it to /Volumes/Liam/Docker/DockerDesktop:

default 12:08:20.366807-0500 com.docker.backend callback failed on restart: failed to rename VM disk: rename <HOME>/Library/Containers/com.docker.docker/Data/vms/0/data /Volumes/Liam/Docker/DockerDesktop: file exists

hut8 avatar Jan 31 '24 17:01 hut8

Alright so I found a workaround:

  1. Close docker desktop completely, ensuring that the engine isn't running
  2. Move the things: (replace the destination with the real destination, and make sure to keep the trailing slash on /data/ because of how rsync interprets trailing slashes.
rsync -av --info=progress2 $HOME/Library/Containers/com.docker.docker/Data/vms/0/data/ /Volumes/Liam/Docker/DockerDesktop/
  1. Edit '$HOME/Library/Group Containers/group.com.docker/settings.json' - that's where the settings.json file is! Change dataFolder: "dataFolder": "/Volumes/Liam/Docker/DockerDesktop",

  2. Start up docker desktop and make sure things work.

  3. After ensuring things are working, delete the original data folder.

hut8 avatar Jan 31 '24 18:01 hut8

Setting up on a fresh MacOS machine, just required closing docker desktop and settings.json to be changed to "dataFolder": "/Volumes/Liam/Docker/DockerDesktop",. Once changes are done, start docker desktop and your images will now be in newly set path

vinayakg avatar Jul 04 '24 08:07 vinayakg