Новости о Docker

Наконец-то в Docker внедрили верификацию образов. Не так много и понадобилось времени, кстати. Ни на что не намекая, предположим, что на подходе зависимости между образами докера, как в RPM.

Помимо этого, в версии 1.8 появилась фича "копировать файл из хоста в контейнер". Не то, чтобы нас, пользователей контейнеров, управляемых systemd, и виртуалок, к которым есть libguestfs, это сильно удивило. Нас больше заинтересовало то, что все эти "новинки" всерьез называются новинками.

Вообще, пользователи Docker зачастую не очень понимают, что такое "контейнеры", что такое "докер" и многие другие вещи. Для них порекомендуем ознакомиться с короткой тематической хаутушкой, которая может помочь расставить все на свои места. Docker, сам по себе, это такой "mc" для контейнеров, и некоторые считают, что как и mc, так и в Docker ничего, кроме лишней сущности, нет. Есть даже шуточная (или не очень?) попытка реализовать Docker в менее 1000 строчек на Bash. Конечно, одним systemd-nspawn вместо Docker обойтись не получится - нужно управление сетью, нужны средства развертывания образов, нужен хотя-бы простейший менеджер задач в кластере, но и для Docker необходимы дополнительные средства. Например, послушайте любопытное выступление Александра Тарасова, инженера Альфа-банка:



Какое у вас сложилось впечатление о развитости и интегрированности компонентов инфраструктуры для Docker?

Вообще, про Docker сейчас интереснее читать не статьи, а читательские комментарии к ним, вот тут, например. Похоже, что мы проходим первый пик известной кривой, и пользователи уже сформировали список желаний. При всем уважении к мнению и опыту команды Iron.io с их колоссальными числами реально работающих контейнеров, у Docker есть хорошо видимые проблемы - особенно обратите внимание на файловую систему, журналирование и безопасность. Мы уверены, что эти проблемы преодолимы, и не факт что в каких-то реальных конфигурациях они обязательно вылезут, но в других решениях эти проблемы уже устранены, и это просто надо знать, прежде чем делать выбор.

К счастью, все контейнерные технологии на самом деле базируются на одних и тех же существующих механизмах ядра, и унификация инструментов гораздо выше, чем считают некоторые. Например, развернув контейнер с помощью Docker вы сможете управлять им из systemd, который давно уже умеет напрямую импортировать образы Docker. Но прогресс прогрессирует прогрессирующе, и Open Container Format, о котором вы уже слышали, скоро сделает ненужным и экспортирование - все контейнеры будут одинаковыми. Пока утрясаются управленческие моменты, но уже есть инициативы по стандартизации все больших и больших областей, например, сети для контейнеров (но это пока секрет!).

Само собой, мы тоже используем Docker сами и помогаем другим. Пару-тройку недель назад наш коллега, Dan Horák, наконец-то собрал Docker для архитектуры s390x. Использовался gcc-go, т.к. референсный golang почти никакие нестандартные архитектуры не поддерживает. Напомним, первые эксперименты по сборке чего-то реального с gcc-go начались в апреле 2015го.