Как использовать Docker для Windows только в командной строке, с обходом / отключенным графическим интерфейсом?

#windows #powershell #docker #containers

#Windows #powershell #docker #контейнеры

Вопрос:

Я работаю с контейнерами Windows в Windows 10 Pro.

Достаточно ли просто запустить процесс dockerd в PowerShell, чтобы использовать Docker? Должны ли мне быть запущены какие-то другие процессы / службы?

Я все еще не понимаю назначения com.docker.service (служба Docker Desktop). Я извлекаю изображения и запускаю контейнеры без него.

Я что-то упускаю?

Редактировать: Невозможно переключить режим контейнера с помощью DockerCli.exe без запуска com.docker.service, но когда это происходит, создается MobyLinuxVM для запуска контейнеров Linux. Это может быть основной целью включения службы.

Вопрос: Нужна ли мне служба Docker Desktop, когда я работаю только в режиме контейнеров Windows?

Вопрос: Почему запуск контейнера Windows в режиме изоляции hyperv не создает виртуальную машину Hyper-V. Я дважды проверил его Hyper-V Manager.

Ответ №1:

Когда вы запускаете контейнеры Linux в Windows, вы запускаетесь не в Windows, а на компьютере hyperv с установленным Linux.

Контейнеры Windows запускаются с помощью встроенного dockerd для Windows.

Этот дополнительный графический интерфейс помогает вам управлять типом контейнера, который вы используете в данный момент. Вероятно, вы могли бы жить без этого, но стоит ли оно того? В более новой версии (я это не тестировал) он может обеспечивать подключение между контейнерами Linux и Windows, поэтому я был бы осторожен с отключением этой службы.

Просто отметим, что это только для настольных компьютеров Windows. Для Windows Server вы можете и должны использовать docker ee (базовая версия предназначена только для Windows и она бесплатна)

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

1. Если быть точным, я тестирую его на Windows 10 Pro. Для контейнеров Windows режим изоляции по умолчанию — hyperv , но его можно переключить на процесс . Даже если для него установлено значение hyperv , ни одна виртуальная машина не создается Hyper-V по команде docker run (кстати. графический интерфейс не задействован, запущен только процесс dockerd ). В любом случае я обнаружил, что не могу переключиться с контейнеров Windows на Linux, когда com.docker.service не запущен. Если это так, он пытается создать MobyLinuxVM для запуска Linux container. Это может быть основной целью службы.

2. Это была моя точка зрения. Для настроек сервера у вас нет этой службы, поскольку docker ee предоставляет только собственные контейнеры Windows, без Moby Linux и коммутации. Просто docker и dockerd.

3. Я понимаю. Тем временем я также выяснил, почему Hyper-V Manager не выводит список виртуальных машин Windows, когда режим изоляции — hyperv : (…) хотя Hyper-V — это технология времени выполнения, обеспечивающая изоляцию hyper-v, изолированные контейнеры hyper-v не являются виртуальными машинами Hyper-V и не могут управляться классическими инструментами Hyper-V , это упоминается здесь: blog.docker.com/2016/09/dockerforws2016