Поделиться через


Присоединение к процессу, выполняющемуся в контейнере 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), чтобы открыть диалоговое окно Подключение к процессу.

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

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

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

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

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

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

      1. Для параметра Узел Docker CLI выберите значение Локальный компьютер.

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

        Снимок экрана: меню контейнера Docker.

        Снимок экрана: меню контейнера Docker.

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

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

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

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

        1. Укажите адрес управляющей программы (то есть через TCP, IP-адрес и т. д.) в узле Docker (необязательно) и нажмите кнопку "Обновить".
        2. После успешного подключения к управляющей программе выберите запущенный контейнер для подключения, а затем нажмите кнопку "ОК".
  4. Выберите соответствующий процесс контейнера из списка Доступные процессы, а затем выберите Присоединить, чтобы начать отладку процесса контейнера 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#.

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

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