Chroot containers
chroot - самый примитивный тип контейнеров. Использовались ещё в небеске для изоляции ftp-сервера от остальной системы. Единственное достоинство - работают везде, включая виртуальные машины OpenVZ.
В случае скраббера как раз необходимо деплоить имиджи на OpenVZ-машины.
Соответственно, нужна обвязка chroot-контейнеров
Image Building
Unpacked image format
- application containers, aci
- open containers, oci
- open virtualization format, ovf
- amazon machine images, ami
Container snapshots
Самый простой в реализации и самый дебильный способ сборки контейнера.
Building from scratch
Основная идея - отказ от ручного администрирования имиджей. Вместо этого имидж билдится из исходников и инструкции по сборке.
Versioning and Differential Compression
Docker Build
В докере есть билд-система, которую воспроизводить или использовать нет смысла из-за недостатков. Но на её примере легче объяснить концепцию
Пользователь создаёт Dockerfile (аналогия с Makefile) следующего содержания:
FROM ubuntu RUN apt-get update && apt-get install node.js
Запускает docker build и получает в реестре имиджей новый имидж (идентифицированный хешом). Который можно пртежить человекочитаемым хешом. Например, nodejs.
Image Pushing
- scp
Container Lifecycle
Creation, Starting, Stopping and Deletion