Не удается запустить контейнеры Windows, если в команде run
указано mount
или volume
. Контейнеры работают без спецификации. Я также попытался явно создать том (управляемый Docker), но по-прежнему получаю ошибку «Не удается найти файл».
Ниже приведен один из многих вариантов, которые я пробовал использовать с использованием базового образа наносервера. Исходная папка существует на хосте, и я дал всем пользователям полный доступ к этой папке для устранения неполадок.
docker run -it --rm --name nanoserver -d microsoft/nanoserver --mount "source=C:\HostDataForDockerContainer,target=C:\ContainerData"
Текст ошибки:
docker: Error response from daemon:
container 9f0b1d6ef217986b8c0225fb38e96cbc51db2d3eff79591e9f3d5288f86f2851 encountered an error during CreateProcess:
failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--mount source=C:\\HostDataForDockerContainer,target=C:\\ContainerData","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[30,120]}.
Недавно я обновил до последней версии Docker для Windows, но я не пробовал монтировать тома ранее, поэтому я не знаю, является ли это проблемой регрессии с этой версией Docker или чем-то изолированным от конфигурации моего хоста или использования Docker.
Спецификация mount
выглядит правильно для меня, согласно документу, но я был бы признателен, если кто-то может подтвердить.
Мой хост-компьютер - Windows 10 Pro под управлением Docker Community Edition версии 18.03.1-ce-win64 (17438).
EDIT:
Как и предположил @JonathonReinhart, я попытался изменить порядок параметра mount
в качестве более раннего аргумента и получил ту же ошибку, хотя дополнительная информация в сообщении об ошибке предполагает, что не все аргументы были распознаны в каждом случае. Вот перестановки, которые я попробовал:
docker run --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData" -it -d microsoft/nanoserver --rm --name nanoserver
docker: Error response from daemon:
container f91312790b941a48cea49bb68d939acb648d85a078b30f0a5b74e9e7bae32147 encountered an error during CreateProcess:
failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--rm --name nanoserver","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.
docker run -it --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData" -d microsoft/nanoserver --rm --name nanoserver
docker: Error response from daemon:
container 43fbe911dcd275f55636bd97e4b3498f7c71e265cdda6cb85dacf19bdc8464f1 encountered an error during CreateProcess:
failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--rm --name nanoserver","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.
docker run -it --rm --name nanoserver -d microsoft/nanoserver --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData"
docker: Error response from daemon:
container 14e81f566d2ad45d3103b2e292924eab2b0490f992ae9deaf750b99c25d1ca77 encountered an error during CreateProcess:
failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--mount type=bind,source=C:\\HostDataForDockerContainer,target=C:\\ContainerData","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.
docker run -it -d microsoft/nanoserver --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData" --rm --name nanoserver
docker: Error response from daemon:
container 20cf5692417a9d455dd4a05ff77516dc4f17d4b0d9cc8c37d29dc842b82f5007 encountered an error during CreateProcess:
failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--mount type=bind,source=C:\\HostDataForDockerContainer,target=C:\\ContainerData --rm --name nanoserver","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.
docker run -it -d microsoft/nanoserver --rm --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData" --name nanoserver
docker: Error response from daemon:
container fba579fa3d788f4890b0c1523495742b689513150800e1b19f6f70f2a0e49819 encountered an error during CreateProcess:
failure in a Windows system call: The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--rm --mount type=bind,source=C:\\HostDataForDockerContainer,target=C:\\ContainerData --name nanoserver","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.
docker run -it -d microsoft/nanoserver --rm --name nanoserver --mount "type=bind,source=C:\HostDataForDockerContainer,target=C:\ContainerData"
docker: Error response from daemon:
container 76b1117b65e6e345284c083af39fa8a627369fb5518fe89ed2519aa224f82d0a encountered an error during CreateProcess:
failure in a Windows system call: The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"--rm --name nanoserver --mount type=bind,source=C:\\HostDataForDockerContainer,target=C:\\ContainerData","WorkingDirectory":"C:\\","EmulateConsole":true,"CreateStdInPipe":true,"CreateStdOutPipe":true,"ConsoleSize":[57,120]}.