Функции контейнера интеграции ACI

Отдельные контейнеры можно запускать в ACI с помощью команды docker run. Один контейнер выполняется в своей собственной группе контейнеров ACI, которая будет содержать один контейнер.

Контейнеры могут быть перечислены с помощью команды docker ps, а остановлены и удалены с помощью docker stop <CONTAINER> и docker rm <CONTAINER>.

Параметры запуска Docker для контейнеров ACI

В таблице далее перечислены поддерживаемые флаги docker run и их аналоги ACI.

Легенда:

  • ✓: Реализовано

  • n: ещё не реализовано

  • x: Неприменимо / нет доступных преобразований

Флаг

Карта

Примечания

–cpus

См. Ресурсы контейнера.

-d, –detach

Отключиться от журналов контейнера при запуске контейнера. По умолчанию командная строка остаётся подключенной и следует журналам контейнера.

–domainname

См. Открытие портов.

–е, –env

Устанавливает переменную среды.

–env-file

Устанавливает переменную среды из внешнего файла.

–health-cmd

Указывает команду проверки работоспособности. См. Проверка работоспособности.

–health-interval

Указывает интервал проверки работоспособности

–health-retries

Указывает количество повторных попыток проверки работоспособности

–health-start-period

Указывает начальную задержку проверки работоспособности

–health-timeout

Указывает тайм-аут проверки работоспособности

-l, –label

x

Не поддерживается в интеграции Docker ACI из-за ограничений тегов ACI.

-m, –memory

См. Ресурсы контейнера.

–name

Указывает имя для контейнера. Имя должно быть уникальным в группе ресурсов ACI. имя генерируется по умолчанию.

-p, –publish

См. Открытие портов. В ACI поддерживается только симметричное сопоставление портов.

–restart

Политика перезапуска должна быть одной из следующих: always, no, on-failure.

–rm

x

Не поддерживается как ACI не поддерживает автоматическое удаление контейнеров..

-v, –volume

См. Постоянные тома.

Открытие портов

Вы можете предоставить один или несколько портов контейнера с помощью docker run -p <PORT>:<PORT>. Если порты предоставляются при запуске контейнера, соответствующая группа контейнеров ACI будет отображаться с выделенным общедоступным IP-адресом и доступными требуемыми портами.

Примечание

ACI не поддерживает сопоставление портов, поэтому при использовании -p <PORT>:<PORT> необходимо указывает тот же номер порта.

При предоставлении портов контейнер также может указывает флаг службы --domainname, чтобы установить имя хоста DNS. domainname будет использоваться для указания имени метки DNS ACI, а группа контейнеров ACI будет доступна по адресу <DOMAINNANE>.<REGION>.azurecontainer.io. domainname должен быть уникальным глобально в .azurecontainer.io.

Постоянные тома

Тома Docker сопоставляются с общими папками Azure, каждая общая папка является частью учетной записи хранения Azure. Один или несколько томов можно указывает с помощью docker run -v <STORAGE-ACCOUNT>/<FILESHARE>:<TARGET-PATH>.

Команда запуска может использовать флаг --volume или -v несколько раз для разных томов. Тома могут использовать одни и те же или разные учетные записи хранения. Целевые пути для разных монтирований томов должны быть разными и не пересекаться. Не поддерживается подключение одного файла или подпапки из общей папки Azure.

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

Контейнерные ресурсы

Резервирование ЦП и памяти можно настроить при запуске контейнеров с кодом docker run --cpus 1.5 --memory 2G.

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

Журналы

Вы можете просмотреть журналы контейнера с помощью команды docker logs <CONTAINER-ID>.

Вы можете следить за журналами с опцией --follow (-f). При запуске контейнера с docker run по умолчанию командная строка остаётся прикрепленной к журналам контейнера при запуске контейнера. Используйте docker run --detach, чтобы не следить за журналами после запуска контейнера.

Примечание

После журналов ACI могут возникнуть проблемы с отображением, особенно при изменении размера терминала, который следует журналам контейнера. Это связано с тем, что ACI обеспечивает извлечение необработанных журналов, но не потоковую передачу журналов. Журналы эффективно извлекаются каждые 2 секунды при отслеживании журналов.

Проверки здоровья

Проверка работоспособности может быть описана с помощью флагов с префиксом --health-. Это переводится в LivenessProbe для ACI. Если проверка работоспособности завершается неудачей, контейнер считается неработоспособным и завершается. Для автоматического перезапуска контейнера его необходимо запускает с политикой перезапуска (установленной флагом --restart), отличной от no. Обратите внимание, что политика перезапуска по умолчанию, если она не установлена, — no.

Для автоматического перезапуска в контейнере также должна быть установлена политика перезапуска с --restart (по умолчанию docker run не имеет политики перезапуска).