Подключение расширения WSL VSCode к докеру, установленному в Windows - PullRequest
2 голосов
/ 28 марта 2019

Я установил подсистему Windows для Linux (WSL) на моем компьютере с Windows 10 Pro. Следуя этому руководству, я настроил Docker для Windows для работы с WSL. В командной строке WSL Docker работает отлично. Я построил несколько изображений и запустил их в WSL.

Я также установил код Microsoft Visual Studio внутри WSL. Я использую его с помощью X-сервера для Windows ( VcXsrv ). Внутри VSCode я установил расширение докера. Несмотря на то, что я правильно установил хост докера в настройках, он не подключается к Docker.

Я знаю, что это искаженная установка, и я могу использовать правильную установку Linux, чтобы сделать эту работу. Но мне нужно знать, возможно ли заставить его работать в текущей настройке, поскольку это важно для меня. Любая помощь будет оценена.

Точное сообщение об ошибке:

Unable to connect to Docker. 
Please make sure you have installed Docker and that it is running. 
Also, make sure you've followed the Linux post-install instructions:
"Manage Docker as a non-root user". 
Details: connect ECONNREFUSED 127.0.0.1:80

Мой VSCode settings.json файл:

{
    "editor.fontFamily": "'Fira Code'",
    "terminal.integrated.shell.linux": "/bin/zsh",
    "terminal.integrated.fontFamily": "monospace",
    "editor.fontLigatures": true,
    "terminal.integrated.fontWeightBold": "normal",
    "editor.fontWeight": "500",
    "python.venvPath": "/home/r2m/Work/venv",
    "terminal.integrated.rendererType": "dom",
    "git.autofetch": true,
    "workbench.colorTheme": "Material Theme Darker High Contrast",
    "docker.host": "tcp://localhost:2375"
}

Вывод docker info выполняется в WSL:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 16
Server Version: 18.09.2
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host 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: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 09c8266bf2fcf9519a651b04ae54c967b9ab86ec
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.125-linuxkit
Operating System: Docker for Windows
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934GiB
Name: linuxkit-00155d028201
ID: PBQD:BCLL:MYXY:6OFR:KJB2:UK46:VQWG:ELYT:6NGO:42QP:4SRK:FHO2
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 22
 Goroutines: 47
 System Time: 2019-03-27T22:09:33.2435878Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

1 Ответ

1 голос
/ 08 июня 2019

Это странно: Details: connect ECONNREFUSED 127.0.0.1:80. Расширение не должно подключаться к 80 порту. Вы помните, что устанавливали это где-нибудь?

Пока эта комбинация работает довольно хорошо:

  1. VSCode Insider Windows с расширением для удаленной разработки https://aka.ms/vscode-remote/download/extension
  2. Докер для Windows
  3. Докер CE CLI на WSL

Кстати, это руководство немного устарело. Вы должны следовать официальному руководству по установке docker-cli в Linux https://docs.docker.com/install/linux/docker-ce/ubuntu/ и следовать этому руководству для настройки VSCode https://code.visualstudio.com/docs/remote/containers.

В Linux вам ТОЛЬКО нужно установить docker-cli и не нужно делать Post-installation steps for Linux.

Использование VSCode Linux в WSL больше не рекомендуется. Но расширение Docker также должно работать из коробки в VSCode на X-серверах.

К концу месяца также появится новый WSL 2 на базе виртуальной машины с лучшей совместимостью.

...