Pull to refresh

Высокоуровневые API для Linux-контейнеров

Reading time 2 min
Views 22K

Компания 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
Документация
Tags:
Hubs:
+24
Comments 15
Comments Comments 15

Articles