Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
133 views
in Technique[技术] by (71.8m points)

How can I make Docker store all data on D drive?

I installed Docker and I want it to save images and containers in my folder D:Docker. I read that it can be done by writing the following into daemon.json: "data-root": "d:\Docker" I did it. But now Docker cannot restart with an error:

Failed to restart

System.Threading.Tasks.TaskCanceledException: Cancellation token triggered before we finished reading from the stream. в HttpOverStream.ByLineReader.d__0.MoveNext() --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в HttpOverStream.Client.DialMessageHandler.d__9.MoveNext() --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.Core.Logging.LoggingMessageHandler.d__4.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.CoreLoggingLoggingMessageHandler.cs:строка 30 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в System.Net.Http.HttpClient.d__58.MoveNext() --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.Core.HttpClientExtensions.d__0`1.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.CoreHttpClientExtensions.cs:строка 16 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.ApiServices.LifecycleClient.d__10.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.ApiServicesLifecycleClient.cs:строка 122 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.LinuxkitDaemonStartup.d__5.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.DesktopLinuxkitDaemonStartup.cs:строка 30 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.Engines.WSL2.LinuxWSL2Engine.d__25.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.DesktopEnginesWSL2LinuxWSL2Engine.cs:строка 160 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.ApiServices.StateMachines.TaskExtensions.d__0.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.ApiServicesStateMachinesTaskExtensions.cs:строка 20 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.ApiServices.StateMachines.StartTransition.d__5.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.ApiServicesStateMachinesStartTransition.cs:строка 29 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в Docker.ApiServices.StateMachines.StartTransition.d__5.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.ApiServicesStateMachinesStartTransition.cs:строка 38 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.ApiServices.StateMachines.EngineStateMachine.d__14.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.ApiServicesStateMachinesEngineStateMachine.cs:строка 69 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Docker.Engines.Engines.d__26.MoveNext() в C:workspacesPR-15138srcgithub.comdockerpinatawinsrcDocker.DesktopEnginesEngines.cs:строка 266

My daemon.json file contains this:

{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "data-root": "d:\Docker"
}

What am I doing wrong?

question from:https://stackoverflow.com/questions/66065467/how-can-i-make-docker-store-all-data-on-d-drive

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This setting has moved many times during desktop and windows five year's marriage, from graph: to data-root to GUI's advanced settings section and counting. Not sure if one of this is still working, but probably no, because in later versions this setting can be found in a different place.

It is dataFolder property in settings.json within %AppData%RoamingDocker folder.

For instance

"dataFolder": "C:\ProgramData\DockerDesktop\vm-data"

I tested it working:

  • in Windows 10
  • with a recent version of Docker Desktop (>3.0.0)
  • with both Hyper-V and WSL2
  • with Linux containers

Actually this settings relocate the VM file associated with docker, moving "images and containers" but also volumes and other things.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...