Подключение к консоли отладки контейнера в приложениях контейнеров Azure
Платформа приложений контейнеров Azure предлагает консоль отладки для устранения неполадок приложения в следующих обстоятельствах:
- Вы не можете подключиться к целевому контейнеру, если вы используете контейнер, который включает только приложение и его зависимости среды выполнения, или образ без дистрибутива.
- При возникновении проблем с сетью образы не имеют служебных программ отладки для их изучения.
Вы можете подключиться к консоли отладки с помощью Azure CLI.
Примечание.
Консоль отладки создает отдельный контейнер, который использует базовые ресурсы с контейнером, на котором выполняется приложение. Если контейнер отладки уже существует, консоль отладки повторно использует существующую вместо создания новой. Существует не более одного запущенного контейнера отладки для каждой реплики приложения контейнера. Если вам не нужно выполнять контейнер отладки, введите выход или используйте ctrl/Cmd + D в сеансе консоли отладки.
Azure CLI
Чтобы подключиться к контейнеру консоли отладки, используйте az containerapp debug
команду. Чтобы выйти из консоли, введите клавишуCTRL/CMD+D.
Например, подключитесь к консоли отладки контейнера в приложении контейнера с одним контейнером с помощью следующей команды. Перед выполнением этой команды замените <PLACEHOLDERS>
значения приложения-контейнера.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
Чтобы подключиться к консоли отладки контейнера в приложении контейнера с несколькими редакциями, репликами и контейнерами, включите следующие параметры в az containerapp debug
команду.
Аргумент | Description |
---|---|
--revision |
Имя редакции контейнера для отладки. |
--replica |
Имя реплики контейнера для отладки. |
--container |
Имя контейнера для отладки. |
Имена редакций az containerapp revision list
можно получить с помощью команды. Перед выполнением этой команды замените <PLACEHOLDERS>
значения приложения-контейнера.
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
az containerapp replica list
Используйте команду, чтобы получить имена реплик и контейнеров. Перед выполнением этой команды замените <PLACEHOLDERS>
значения приложения-контейнера.
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
Подключитесь к консоли отладки контейнера с помощью az containerapp debug
команды. Перед выполнением этой команды замените <PLACEHOLDERS>
значения приложения-контейнера.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
Встроенные средства в консоли отладки
Следующие средства диагностики предварительно установлены в консоли отладки для устранения неполадок:
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- nc
- wget.
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
Если вы хотите установить другие средства, выполните tdnf install -y <TOOL_NAME>
команду. Перед выполнением этой команды замените <PLACEHOLDERS>
значения приложения-контейнера.
Например, установите JDK в консоли отладки с помощью следующей команды:
tdnf install -y msopenjdk-17
Сценарий. Доступ к файловой системе контейнера с помощью консоли отладки
По умолчанию консоль отладки выполняется в качестве корневого пользователя.
Доступ к файловой системе контейнера можно получить /proc/1
, если контейнер запускается в качестве корневого пользователя. Если контейнер не запускается от имени корневого пользователя, выполните следующую команду, чтобы переключить пользователя перед доступом /proc/1
к каталогу или вы получите ошибку с отказом в разрешении.
switch-user