Docker совет №25: Какую API версию docker compose использовать?
May 24, 2018 07:08 · 248 words · 2 minute read
На сегодняшний день 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
(да, это совершенно разные вещи).