Функции контейнера интеграции 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 |
✓ |
Политика перезапуска должна быть одной из следующих: |
–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
не имеет политики перезапуска).