Компания DotCloud разработала и выложила в открытый доступ систему Docker — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.
LXC — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров Linux на одном компьютере. LXC не использует виртуальные машины, а создаёт виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют один экземпляр ядра ОС.
Ключевые особенности Docker
- Изоляция файловой системы: каждый контейнер процесса работает полностью отдельной корневой файловой системе
- Изоляция ресурсов: системные ресурсы, как CPU и память, можно выделять по-разному для каждого контейнера процесса, используя cgroups
- Сетевая изоляция: каждый контейнер процесса работает в своём собственном пространстве имён, с виртуальным интерфейсом и собственным IP-адресом
- Копирование при записи: корневые файловые системы создаются путём копирования при записи, что позволяет развёртывать контейнеры исключительно быстро, не используя лишней памяти и места на диске
- Логгирование: стандартные потоки (stdout/stderr/stdin) каждого контейнера процесса регитсрируются и сохраняются для последующего анализа
- Менеджмент изменений: внесённые изменения в файловую систему одного контейнера можно применить к новому образу и повторно использовать для других контейнеров. Больше не нужны шаблоны и конфигурация вручную.
- Интерактивная консоль: Docker может подключить pseudo-tty и стандартный ввод данных для любого контейнера
Docker построен на файловой системе AUFS, в которой есть функция копирования при записи, и языке программирования Go.
Инструкция по установке Docker под Ubuntu
Инструкция по установке Docker под Windows (нужны Virtualbox, Vagrant и Git, на виртуальную машину ставится Ubuntu)
Код на Github
Документация
Автор: alizar