Как подключить плагин IntelliJ Docker к Docker Desktop Windows - PullRequest
0 голосов
/ 27 марта 2020

Я использую последнюю версию Windows 10 Pro (1903), последнюю версию Docker Engine (v19.03.8) и последнюю версию IntelliJ (2019.3.4). Я установил Expose-демон на tcp://localhost:2375 без TLS и Применить / Перезапустить двигатель. При попытке переключиться на контейнер Windows демон, похоже, зависает, выдавая ошибку, после которой мне нужно уничтожить все настройки и файлы конфигурации, прежде чем я смогу снова запустить демон.

Тем не менее, когда я пытаюсь чтобы установить tcp://localhost:2375 в моем плагине Docker, соединение просто разрывается (возможно, с тайм-аутом, но нет журнала об этом). Тем не менее, простое использование docker info и других команд из интерфейса командной строки работает, как и предполагалось, поэтому я вполне уверен, что Engine работает.
Для справки: вывод docker info:

$ docker system info
Client:
 Debug Mode: false
 Plugins:
  app: Docker Application (Docker Inc., v0.8.0)
  buildx: Build with BuildKit (Docker Inc., v0.3.1-tp-docker)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.76-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.943GiB
 Name: docker-desktop
 ID: NGP3:BQCE:JSUO:6BSV:IUU6:2UEZ:4QTQ:N6IO:TA3T:A7I7:4GXS:IYD6
 Docker Root Dir: /var/lib/docker
 Debug Mode: true
  File Descriptors: 34
  Goroutines: 50
  System Time: 2020-03-27T15:56:23.690394533Z
  EventsListeners: 3
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

Что еще можно попробовать (если не использовать снова Docker Toolkit), чтобы запустить интеграцию? Как я могу даже проверить, где может прерываться соединение?

1 Ответ

0 голосов
/ 30 марта 2020

Итак, после трех дней исследований у меня есть ответ. Очевидно, Windows 10 резервирует диапазон портов 2344-2444, что не позволяет демону Docker фактически выставлять сокет TCP, несмотря на настройки. У меня такое ощущение, что это также связано с тем, что демон не запускается после перезагрузки. Вы можете проверить, является ли это root причиной проблемы, выполнив в расширенном приглашении / powershell следующее: netsh interface ipv4 show excludedportrange protocol=tcp - если в выводе указан диапазон, включающий 2375, вы затронуты ,

Исправление (включая две перезагрузки!):

  1. Отключение HyperV и перезагрузка для освобождения выделенных портов: dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
  2. Выделение порта 2375 вручную: netsh int ipv4 add excludedportrange protocol=tcp startport=2375 numberofports=1
  3. Повторно включите HyperV и перезагрузите систему, чтобы воспользоваться преимуществами исправления: dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
  4. Необязательно: после этого процесса вы можете снова включить TLS на указанном сокете и * Плагин 1025 * сможет нормально подключаться.
...