Встречаем Docker 1.13. Что новенького?

Использование compose-файлов для развертывания сервисов в режиме Swarm
Docker 1.13 добавляет поддержку compose-файлов в команду docker stack deploy
, чтобы сервисы можно было развернуть используя напрямую файл docker-compose.yml
. Включение такой возможности - это значительные усилия для расширения API сервиса Swarm, чтобы сделать его более гибким и полезным.
Преимущества:
- возможность указания нужного количества экземпляров для каждого сервиса
- применение политики обновлений
-
определения условий запуска сервисов
Теперь развернуть сложный мультисервисный стек на нескольких хостах можно всего одной командой:
docker stack deploy --compose-file=docker-compose.yml my_stack
Улучшена обратная совместимость интерфейса командной строки (CLI)
Уже страдали когда-либо от ошибки под названием: Error response from daemon: client is newer than server
из-за того, что ваша версия Docker CLI была обновлена? Раньше к такой ошибке приводило использование новой версии клиента со старой версией daemon
, и чтобы ее избежать, все равно приходилось использовать его со старым движком Docker.
Начиная с версии 1.13, более новые CLI могут использоваться для управления старым версиям daemon
. Также, создатели Docker 1.13 добавили функцию согласования, на случай если новый клиент пытается использовать функции, которые не поддерживаются в старых версиях daemon
.
Команды очистки
Docker 1.13 вводит несколько полезных команд, чтобы дать пользователям понять, сколько места на диске Docker использует, и помочь удалить неиспользуемые данные.
docker system df
- покажет используемое пространствоdocker system prune
- удалит все ненужные данные
Также Prune можно использовать для очистки только некоторых типов данных.
Реструктуризация интерфейса командной строки
За последние несколько лет возможности Doker пополнились большим количеством фичей, на момент написания статьи CLI содержит 40 команд. Некоторые, типа build
или run
используются чаще всего, некоторые, как например pause илиhistory
- менее востребованы. Многие команды высшего уровня захламляют страницы помощи и усложняют так называемуюtab-completion
(заполнение нажатием клавиши TAB ).
В Docker 1.13 были реорганизованы команды для более логичного соответствия объектам, с которыми они взаимодействуют. Например, команды для вывода списка и запуска контейнеров list
и start
, теперь стали подкомандами docker container
, а history
- подкомандой docker image
.
docker container list
docker container start
docker image history
Изменения позволили почистить синтаксис Docker CLI, улучшить хелп-текст и упростить пользование Docker’ом. Для обеспечения обратной совместимости поддержка старого синтаксиса сохранена, однако команда Docker’а призывают всех принять новый синтаксис.
Расширение возможностей мониторинга
docker service logs
- новая мощная экспериментальная команда, которая значительно упрощает отладку сервисов. Вместо того, чтобы вручную собирать логи с отдельных хостов и контейнеров, docker service logs
тянет логи из всех контейнеров, в которых выполняется процесс и направляет их в текущую консоль.
Также Docker 1.13 добавил точку сбора параметров в стиле Prometheus с базовыми метриками по контейнерам, образам и состояниямdaemon
.
Улучшение сборки
docker build
получил новый экспериментальный флаг --squash
. Он агрегирует все слои файловой системы, производимые при сборке в один сводный слой. Это может упростить создание минималистичных образов контейнеров, но может и привести к увеличению накладных расходов при перемещении образов (т.к. --squash слои не смогут более делиться между образами).
У версии 1.13 также есть поддержка для сжатия сборочного контекста из CLI в daemon, использующая флаг --compress. Это ускорит сборку, которая производится на удаленных демонах за счет уменьшение объема передаваемых данных.
А также начался этап бета тестирования Docker’а для облачных сервисов AWS и Azure.


