Docker совет №25: Какую API версию docker compose использовать?

May 24, 2018 07:08 · 248 words · 2 minute read docker docker-compose

На сегодняшний день Docker Compose имеет 3 основные версии API (v1, v2 и v3). В зависимости от используемой версии вам могут быть доступны (или недоступны) некоторые полезные функции и возможности.

Наверняка вы обращали внимание, что в самом начале файла docker-compose.yml обычно присутствует строка version: '2' или version: '3'. Это и есть версия API Docker Compose!

Если вы не видите строки с явно заданной версии API, это означает что в вашем случае используется самая первая версия (v1). Эта версия уже признана устаревшей и больше не рекомендуется к использованию. Вкратце, в первой версии не поддерживаются именованные тома, сети и некоторые аргументы сборки (build), полный список ограничений можно найти здесь.

Что касается второй и третьей версии API (v2/v3), то самая простая рекомендация - использовать самую последнюю (актуальную) версию, однако здесь уже нужно исходить из конкретных требований и особенностей вашего проекта. Например, если вы не можете (или не хотите) обойтись без конструкции volume_from, то третья версия API вам не подойдет, а если вы работаете с Docker Swarm, то нужно использовать только версию 3+.

Кроме того, в третьей версии API целая куча настроек использования CPU и памяти перенесена в свойство deploy. Полный список всех изменений и функционал версий v2 и v3 можно найти здесь.

Что касается исполняемого файла docker-compose, то его всегда нужно обновлять до последней актуальной версии - как минимум, они будут содержать исправление ошибок предыдущих версий.

На официальном сайте всегда можно просмотреть матрицу совместимости, чтобы узнать, совместима ли ваша версия API с конкретной бинарной версией docker-compose (да, это совершенно разные вещи).

tweet Share