Контейнер Windows для монтирования тома Docker

#docker #dockerfile

#docker #dockerfile

Вопрос:

При попытке смонтировать том в контейнере Windows docker я получаю следующую ошибку.

 ===============
C:Program FilesDockerDockerResourcesbindocker.exe: Error response from daemon: container 1234567ebcdh encountered an error during Start: failure in a Windows system call: The compute system exited unexpectedly. (0xc0370106)
================
  

Я упомянул почти все возможные комбинации c:/app в файле docker, но все еще получаю ошибку при запуске самого контейнера без -v опции.

 -----------
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command"]
WORKDIR /application
COPY . .
VOLUME C:/application
CMD cmd
-----------
  
  • Операционная система: Windows 10
  • Docker: Docker для Windows 2.0.0

Если у вас есть какие-либо идеи, что здесь пошло не так?

Ответ №1:

Похоже, за этим следует docker/for-win проблема 676, которая включает:

У меня также была эта точная проблема:

 docker: Error response from daemon: container XYZ encountered an error during Start: failure in a Windows system call: The compute system exited unexpectedly. (0xc0370106).
  

Я нашел 2 решения для моего случая:

Я смог успешно создать и запустить образ, уменьшив количество слоев в истории. (Для меня это число составило максимум 37 слоев за всю историю.) (Если ваш файл dockerfile основан на 2-м файле dockerfile, возможно, потребуется уменьшить количество шагов во 2-м файле dockerfile.)

  • Как отлаживать: я смог отладить это, сократив количество шагов вдвое до запуска образа, затем повторно добавляя шаги, пока не обнаружил, сколько шагов может быть в истории до разрыва образа.
  • Я смог успешно создать и запустить образ без уменьшения количества слоев, убедившись, что корневым образом была определенная версия windowsservercore: 1709 (в частности, версия 1709 10.0.16299.904_en-us, которая, похоже, больше не может извлекаться; однако она также может работать с последней версией windowsservercore: 1709, я не пробовал).
    Я не отлаживал это, я обнаружил это по слепой случайности.

Примечание: та же проблема сообщает, что смонтирование может быть проблематичным.

Комментарии:

1. да, вон, я уже сократил количество слоев, и dockerfile состоит только из базовых команд. Сборка прошла успешно, и изображение создано, но когда я пытаюсь запустить контейнер с тем же изображением, он завершается ошибкой, указанной выше.

2. Я также пробовал использовать изображение windowsservercore: 1709, но получаю ту же ошибку при попытке запустить контейнер.

3. @jibin087 какая у вашего хоста версия Windows (ввод winver в cmd)?

4. Моя версия операционной системы — Windows 10, версия 1709

5. @jibin087 Именно так я и думал. Возможно, что более свежее ядро хоста (1803/1809) устраняет эту проблему.