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


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

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

Предпосылки

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

sudo apt-get install openssh-server unzip curl

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

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

Отладчик Visual Studio можно подключить к процессу, работающему в контейнере Docker Linux .NET Core на локальном или удаленном компьютере, с помощью диалогового окна "Подключение к процессу ".

Это важно

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

Замечание

Эти инструкции можно использовать для подключения к Docker Linux, работающему в WSL по протоколу SSH, но экземпляр WSL должен сначала запустить SSH-сервер. Например, можно установить Open SSH Server (например, ), настроить сервер, изменив файл конфигурации ( sudo apt-get install openssh-serverнапример, /etc/ssh/sshd_config), а затем запустить сервер (например: sudo service ssh start).

Чтобы подключиться к запущенным процессам в контейнере Docker для Linux:

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

  2. Задайте для типа подключения значение Docker (контейнер Linux).

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

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

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

    • Чтобы выполнить локальную отладку процесса контейнера Docker:

      1. Установите для узла Интерфейса командной строки Dockerзначение Local Machine.

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

        Снимок экрана: меню контейнера 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 можно подключить к процессу, работающему в контейнере Windows Docker на локальном компьютере, с помощью диалогового окна "Подключение к процессу ".

Это важно

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

Чтобы подключиться к запущенным процессам в контейнере Docker для Windows:

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

  2. Задайте для типа подключения значение Docker (контейнер Windows).

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

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

    Это важно

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

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

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

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

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

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

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