Использование окна "Контейнеры"

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

С помощью окна Контейнеры также можно просматривать сведения об образах контейнеров.

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

Просмотр сведений о контейнерах

Окно Контейнеры открывается автоматически при запуске контейнерного проекта .NET. Чтобы в любой момент просмотреть контейнеры в Visual Studio, нажмите клавиши CTRL+Q для активации поля поиска Visual Studio, введите Containers и выберите первый элемент. Окно Контейнеры можно также открыть из главного меню. В меню выберите Вид>Другие окна>Контейнеры.

Снимок экрана: окно

Снимок экрана: окно

В левой части приводится список контейнеров на локальном компьютере. Контейнеры, связанные с решением, отображаются в разделе Контейнеры решения. Справа имеется область с вкладками Среда, Метки, Порты, Тома, Журналы и Файлы.

Совет

Вы можете легко настроить место закрепления окна Контейнеры в Visual Studio. См. статью Настройка макетов окон в Visual Studio. Когда работает отладчик, окно Контейнеры по умолчанию закреплено рядом с окном контрольных значений.

Если вы используете Docker Compose и Visual Studio 2022 версии 17.7 или более поздней версии, вы увидите дерево узлов для вашего решения и его проекта Docker Compose с родительским узлом для решения и дочерних узлов для каждого проекта.

Снимок экрана: узлы Docker Compose в окне

Просмотр переменных среды

На вкладке Среда приводятся переменные среды, имеющиеся в контейнере. Для контейнера приложения эти переменные можно задать различными способами, например в Dockerfile, в env-файле или с помощью параметра -e при запуске контейнера с помощью команды Docker.

Снимок экрана: окно

Снимок экрана: окно

Примечание.

Изменения, вносимые в переменные среды, не отражаются в режиме реального времени. Кроме того, на этой вкладке приводятся системные переменные среды для контейнера, но не локальные пользовательские переменные среды для приложения.

Просмотр меток

На вкладке Метки отображаются метки для контейнера. Метки — это способ настройки пользовательских метаданных для объектов Docker. Некоторые метки задаются автоматически Visual Studio.

Снимок экрана: окно

Снимок экрана: окно

Просмотр сопоставлений портов

На вкладке Порты можно проверить сопоставления портов, действующие для контейнера.

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

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

Хорошо известные порты доступны по ссылкам, поэтому если через порт доступно содержимое, то можно щелкнуть ссылку, чтобы открыть браузер.

Просмотр томов

На вкладке Тома отображаются тома (подключенные узлы файловой системы) в контейнере.

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

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

Просмотреть журналы

На вкладке Журналы приводятся результаты выполнения команды docker logs. По умолчанию на ней показаны потоки stdout и stderr для контейнера, но выходные данные можно настроить. Подробные сведения о ведении журналов Docker см. в этой статье. По умолчанию вкладка "Журналы" передает журналы, но ее можно приостановить, нажав кнопку "Поток " на вкладке. Если вы снова выберете Stream , потоковая передача возобновляется, когда она ушла.

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

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

Чтобы очистить журналы, нажмите кнопку Очистить на вкладке Журналы. Чтобы получить все журналы, нажмите кнопку Обновить.

Примечание.

Visual Studio автоматически перенаправляет потоки stdout и stderr в окно Вывод при запуске без отладки контейнеров Windows, поэтому контейнеры Windows, запущенные из Visual Studio с помощью Ctrl+F5 не будут отображать журналы на этой вкладке; вместо этого используйте окно Вывод.

Если вы используете Docker Compose с Visual Studio 2022 версии 17.7 или более поздней, у вас есть возможность просматривать журналы каждого контейнера отдельно или чередоваться в один выходной поток. Если выбрать родительский узел для решения, вы увидите чередующиеся журналы из всех проектов Compose. Первый столбец на каждой строке показывает контейнер, создающий такую строку выходных данных. Если вы хотите просмотреть только журналы для одного контейнера самостоятельно, выберите этот узел конкретного проекта.

Снимок экрана: переплетированные журналы на вкладке

Просмотр файловой системы

На вкладке Файлы можно просмотреть файловую систему контейнера, включая папку приложения, которая содержит проект.

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

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

Чтобы открыть файл в Visual Studio, перейдите к нему и дважды щелкните его или щелкните файл правой кнопкой мыши и выберите команду Открыть. Файлы открываются в Visual Studio в режиме только для чтения.

Снимок экрана: файл, открытый для просмотра в Visual Studio.

Снимок экрана: файл, открытый для просмотра в Visual Studio.

На вкладке Файлы можно просматривать журналы приложения, например журналы IIS, файлы конфигурации и другие файлы содержимого, имеющиеся в файловой системе контейнера.

В Visual Studio 2022 версии 17.7 или более поздней версии при целевом объекте .NET 8 или более поздней версии Файл Dockerfile может содержать USER app команду, которая указывает, чтобы запустить приложение с обычными разрешениями пользователя. На вкладке "Файлы" также используются эти разрешения, поэтому вы не сможете просматривать некоторые папки, если эти папки требуют повышенных разрешений для просмотра.

Запуск, остановка и удаление контейнеров

По умолчанию в окне Контейнеры отображаются все контейнеры на компьютере, которыми управляет Docker. С помощью кнопок на панели инструментов можно запускать контейнеры, останавливать их или удалять контейнеры, которые больше не нужны. При создании или удалении контейнеров список обновляется динамически.

Чтобы выбрать несколько контейнеров, например, чтобы удалить несколько за раз, используйте CTRL + щелчок. Если вы попытаетесь запустить более 10 контейнеров, вам будет предложено подтвердить это. При необходимости можно отключить запрос подтверждения.

Открытие окна терминала в выполняющемся контейнере

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

Снимок экрана: кнопка

Снимок экрана: кнопка

Для контейнеров Windows откроется командная строка Windows. Для контейнеров Linux открывается окно с помощью оболочки Bash.

Снимок экрана: окно Bash.

Снимок экрана: окно Bash.

Если вы нацелены на .NET 8, dockerfile может указать USER app команду, что означает, что приложение работает с обычными разрешениями пользователя, а не повышенными разрешениями. Файл Dockerfile, созданный Visual Studio, включает это в Visual Studio 2022 версии 17.7 и более поздних версий, если вы используете .NET 8 или более поздней версии. Терминал открывается как пользователь, указанный в Dockerfile (по умолчанию для проектов .NET 8, то appесть), или если пользователь не указан, он запускается от имени root пользователя.

Обычно окно терминала открывается за пределами Visual Studio в виде отдельного окна. Если вы хотите интегрировать среду командной строки в среду Visual Studio в качестве плавающего окна средств, вы можете установить Whack Whack Terminal.

Подключение отладчика к процессу

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

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

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

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

Просмотр изображений

Вы также можете просматривать изображения на локальном компьютере, используя вкладку Изображения в окне Контейнеры. Изображения, извлеченные из внешних репозиториев, группируются в представление в виде дерева.

Снимок экрана: окно

Снимок экрана: окно

Окно содержит только вкладки, применимые к образам: Метки и Сведения. На вкладке Сведения отображаются сведения о конфигурации для образа в формате JSON.

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

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

Чтобы удалить изображение, щелкните правой кнопкой мыши на изображении в представлении в виде дерева и выберите Удалить, или выберите изображение и нажмите кнопку Удалить на панели инструментов.

Очистка контейнеров и изображений

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

Снимок экрана: кнопка

Снимок экрана: кнопка

Вам будет предложено подтвердить, что вы хотите удалить все неиспользуемые контейнеры.

Если выбрана вкладка Образы при нажатии кнопки Очистить появится запрос на удаление всех "висячих" образов. Висячие образы — это образы слоев, которые больше не связаны с образом, помеченным тегами. Их удаление иногда помогает экономить место на диске.

Варианты конфигурации

Диалоговые окна подтверждения для различных задач, например удаление контейнеров и образов или запуск более 10 контейнеров за раз, могут быть настроены. Любой запрос можно отключить с помощью флажка в диалоговом окне. Можно также включить или отключить эти параметры с помощью настроек в Сервис>Параметры>Инструменты контейнеров>окно инструментов "Контейнеры". См. Настройка инструментов для контейнеров.