Присоединение к процессу, выполняющемуся в контейнере Docker

В Visual Studio можно выполнять отладку приложений, выполняющихся в контейнере Docker для Windows или в контейнере Docker в среде .NET Core для Linux.

Необходимые компоненты

Если его еще нет на сервере Linux, вам необходимо установить SSH-сервер, разархивировать и установить с помощью curl или wget. Например, в Ubuntu это можно сделать, запустив:

sudo apt-get install openssh-server unzip curl

Протокол безопасной передачи файлов (SFTP) также должен быть включен. Большинство дистрибутивов SSH устанавливают и включают SFTP по умолчанию, однако это не всегда так.

Присоединение к процессу, работающему в контейнере Docker Linux

Вы можете подключить отладчик Visual Studio к процессу, выполняемому в контейнере Docker .NET Core в Linux на локальном или удаленном компьютере, используя диалоговое окно Подключение к процессу.

Внимание

Чтобы использовать эту функцию, необходимо иметь локальный доступ к исходному коду.

Присоединение к процессу, выполняющемуся в контейнере Docker в Linux

  1. В Visual Studio выберите Отладка > Подключить к процессу (CTRL + ALT + P), чтобы открыть диалоговое окно Подключение к процессу.

Снимок экрана: диалоговое окно

  1. Для параметра Тип подключения выберите Docker (контейнер Linux).

  2. Нажмите Найти..., чтобы задать Целевой объект подключения в диалоговом окне Выбор контейнера Docker.

    Процесс контейнера Docker можно отлаживать как локально, так и удаленно.

    Локальная отладка процесса контейнера Docker

    1. Для параметра Узел Docker CLI выберите значение Локальный компьютер.
    2. Выберите из списка контейнер, к которому нужно подключиться, и нажмите ОК.

    Меню выбора контейнера Docker

    B. Удаленная отладка процесса контейнера Docker

    Примечание.

    Существует два варианта удаленного подключения к выполняющемуся процессу в контейнере Docker. Первый способ, использование SSH, — идеальный вариант, если на локальном компьютере не установлены средства Docker. Если средства Docker установлены локально и у вас есть управляющая программа Docker, настроенная на прием удаленных запросов, попробуйте второй вариант с помощью управляющей программы Docker.

    1. Подключение к удаленному компьютеру по протоколу SSH

      1. Нажмите Добавить..., чтобы подключиться к удаленной системе.
        Подключение к удаленной системе
      2. Выберите запущенный контейнер для подключения после успешного подключения к SSH или управляющей программе и нажмите кнопку ОК.
    2. Установка в качестве целевого объекта удаленного контейнера, в котором выполняется процесс, с помощью управляющей программы Docker

      1. Укажите адрес управляющей программы (то есть через TCP, IP-адрес и т. д.) в узле Docker (необязательно) и щелкните ссылку обновления.
      2. Выберите запущенный контейнер для присоединения после успешного подключения к управляющей программе и нажмите кнопку ОК.
  3. Выберите соответствующий процесс контейнера из списка Доступные процессы, а затем выберите Присоединить, чтобы начать отладку процесса контейнера C# в Visual Studio.

    Снимок экрана: диалоговое окно

Присоединение к процессу, работающему в контейнере Windows Docker

Вы можете подключить отладчик Visual Studio к процессу, выполняемому в контейнере Docker в Windows на локальном компьютере, используя диалоговое окно Подключение к процессу.

Внимание

Чтобы использовать эту функцию с процессом .NET Core, необходимо установить рабочую нагрузку "Кроссплатформенная разработка .NET Core" и иметь локальный доступ к исходному коду.

Присоединение к процессу, выполняющемуся в контейнере Docker в Windows

  1. В Visual Studio выберите Отладка > Подключить к процессу (или нажмите клавиши CTRL + ALT + P), чтобы открыть диалоговое окно Подключение к процессу.

    Снимок экрана: диалоговое окно

  2. Для параметра Тип подключения выберите Docker (контейнер Windows).

  3. Нажмите Найти..., чтобы задать Целевой объект подключения с помощью диалогового окна Выбор контейнера Docker.

    Внимание

    Целевой процесс должен иметь ту же архитектуру процессора, что и контейнер Docker в Windows, в котором он выполняется.

    Возможность назначения целевого объекта удаленному контейнеру с помощью SSH в настоящее время недоступна. Выполнить это можно только с помощью управляющей программы Docker.

    Установка в качестве целевого объекта удаленного контейнера, в котором выполняется процесс, с помощью управляющей программы Docker

    1. Укажите адрес управляющей программы (то есть через TCP, IP-адрес и т. д.) в узле Docker (необязательно) и щелкните ссылку обновления.

    2. Выберите запущенный контейнер для присоединения после успешного подключения к управляющей программе и нажмите кнопку "ОК".

  4. Выберите соответствующий процесс контейнера из списка Доступные процессы, а затем выберите Присоединить, чтобы начать отладку процесса контейнера C#.

    Снимок экрана: диалоговое окно