 |
Использование Docker
Моуэт Э.
Год выпуска: 2017
ISBN: 978-5-97060-426-7
Переплёт: мягкий
354 страниц
Цена: 1407.00 грн.
|
Контейнеры Docker предоставляют простые быстрые и надёжные методы разработки, распространения и запуска программного обеспечения, особенно в динамических и распределённых средах. Из практического руководства "Использование Docker" вы узнаете, почему контейнеры так важны, какие преимущества вы получите от применения Docker и как сделать Docker частью процесса разработки. Книга "Использование Docker" предназначена для разработчиков, инженеров по эксплуатации и системных администраторов, особенно для тех, кто живо интересуется практическим применением технологии DevOps, она предоставит обширный материал: от основ, необходимых для запуска десятка контейнеров, до описания сопровождения крупной системы с множеством хостов в сетевой среде со сложным режимом планирования. Книга последовательно проведёт вас по всем этапам, необходимым для разработки, тестирования и развёртывания любого веб-приложения, использующего Docker.
Основные темы, рассматриваемые в книге:
- начало работы с Docker - создание и развёртывание простого веб-приложения; - использование методик непрерывного развёртывания для продвижения вашего приложения к активному промышленному использованию несколько раз в день; - изучение различных возможностей и методик для регистрации в системных журналах и наблюдения за многочисленными контейнерами; - исследование сетевой среды и сетевых сервисов: как контейнеры находят друг друга и каким образом можно установить соединение между ними; - распределение и организация кластеров контейнеров с целью балансировки нагрузки, масштабирования, устранения критических сбоев и планирования; - обеспечение безопасности системы, следуя принципам "глубокой или многоуровневой защиты" и минимальных привилегий; - применение контейнеров для построения архитектуры микросервисов.
Отзывы экспертов:
"Использование Docker" - подробное практическое руководство по экосистеме Docker, представляющей собой продвижение заключённых в контейнеры приложений-микросервисов от разработки и тестирования к промышленному производству." - Эдриен Кокрофт, аспирант-исследователь компании Battery Ventures
"Использование Docker" - глубокий, всеобъемлющий обзор программной среды Docker и экосистемы контейнеров. Практическая направленность книги в сочетании с большим количеством примеров упрощает применение теоретических концепций и методик в реальных проектах." - Пини Резник, главный инженер компании Container Solutions
Содержание книги Моуэт Э. "Использование Docker"
Предисловие...................................................................11 Часть I. ПРЕДПОСЫЛКИ И ОСНОВЫ.................................... 16 Глава 1. Что такое контейнеры и для чего они нужны.............. 17 Сравнение контейнеров с виртуальными машинами..............................................................18 Docker и контейнеры...........................................................................................................................20 Краткая история Docker.....................................................................................................................23 Дополнительные модули и надстройки........................................................................................25 64-битовая версия ОС Linux.............................................................................................................26 Глава 2. Установка........................................................... 28 Установка Docker в ОС Linux...........................................................................................................28 Запуск SELinux в разрешающем режиме................................................................................29 Запуск Docker без sudo..................................................................................................................30 Установка Docker в Mac OS или в ОС Windows........................................................................30 Оперативная проверка........................................................................................................................32 Глава 3. Первые шаги....................................................... 34 Запуск первого образа.........................................................................................................................34 Основные команды...............................................................................................................................35 Создание образов из файлов Dockerfile........................................................................................40 Работа с реестрами...............................................................................................................................43 Закрытые частные репозитории.................................................................................................45 Использование официального образа Redis................................................................................46 Резюме......................................................................................................................................................49 Глава 4. Основы Docker.................................................... 50 Архитектура Docker.............................................................................................................................50 Базовые технологии........................................................................................................................51 Сопровождающие технологии....................................................................................................52 Хостинг для Docker.........................................................................................................................54 Как создаются образы.........................................................................................................................55 Контекст создания образа.............................................................................................................55 Уровни образа...................................................................................................................................56 Кэширование.....................................................................................................................................58 Базовые образы.................................................................................................................................59 Инструкции Dockerfile..................................................................................................................62 Установление связи контейнеров с внешним миром...............................................................64 Соединение между контейнерами..................................................................................................65 Управление данными с помощью томов и контейнеров данных..........................................67 Совместное использование данных..........................................................................................69 Контейнеры данных........................................................................................................................69 Часто используемые команды Docker...........................................................................................71 Команда run.......................................................................................................................................72 Управление контейнерами...........................................................................................................75 Информация о механизме Docker.............................................................................................77 Информация о контейнере...........................................................................................................78 Работа с образами............................................................................................................................79 Команды для работы с реестром................................................................................................82 Резюме......................................................................................................................................................83 Часть II. ЖИЗНЕННЫЙ ЦИКЛ ПО ПРИ ИСПОЛЬЗОВАНИИ . DOCKER......................................................................... 84 Глава 5. Использование Docker в процессе разработки.......... 85 Традиционное приветствие миру....................................................................................................85 Автоматизация с использованием Compose................................................................................95 Порядок работы Compose.............................................................................................................96 Резюме......................................................................................................................................................98 Глава 6. Создание простого веб-приложения....................... 99 Создание основной веб-страницы................................................................................................ 101 Использование преимуществ существующих изображений.............................................. 102 Дополнительное кэширование...................................................................................................... 107 Микросервисы.....................................................................................................................................110 Резюме....................................................................................................................................................111 Глава 7. Распространение образов.................................... 113 Docker Hub............................................................................................................................................114 Автоматические сборки....................................................................................................................115 Распространение с ограничением доступа.................................................................................118 Организация собственного реестра.........................................................................................118 Коммерческие реестры............................................................................................................... 126 Сокращение размера образа........................................................................................................... 126 Происхождение образов.................................................................................................................. 129 Резюме................................................................................................................................................... 129 Глава 8. Непрерывная интеграция и тестирование . с использованием Docker................................................ 130 Включение модульных тестов в identidock............................................................................... 131 Создание контейнера для сервера Jenkins................................................................................. 136 Создание образа по триггеру.................................................................................................... 143 Выгрузка образа в реестр................................................................................................................ 144 Присваивание осмысленных тэгов......................................................................................... 144 Конечные процедуры подготовки и эксплуатация........................................................... 146 Беспорядочный рост количества образов............................................................................ 146 Использование Docker для поддержки вспомогательных серверов Jenkins........... 147 Организация резервного копирования для сервера Jenkins............................................... 147 Хостинговые решения для непрерывной интеграции.......................................................... 148 Тестирование и микросервисы...................................................................................................... 148 Тестирование в процессе эксплуатации................................................................................ 150 Резюме................................................................................................................................................... 151 Глава 9. Развертывание контейнеров................................. 152 Предоставление ресурсов с помощью Docker Machine........................................................ 153 Использование прокси-сервера.................................................................................................... 156 Варианты выполнения..................................................................................................................... 163 Скрипты командной оболочки................................................................................................ 163 Использование диспетчера процессов или systemd для глобального управления...................................................................................................................................... 165 Использование инструментальных средств управления конфигурацией............... 168 Конфигурация хоста......................................................................................................................... 172 Выбор операционной системы................................................................................................. 173 Выбор драйвера файловой системы....................................................................................... 173 Специализированные варианты хостинга................................................................................. 176 Triton................................................................................................................................................. 176 Google Container Engine............................................................................................................. 178 Amazon EC2 Container Service................................................................................................. 179 Giant Swarm.................................................................................................................................... 181 Контейнеры для постоянно хранимых данных и для промышленной эксплуатации....................................................................................................................................... 183 Совместное использование закрытых данных........................................................................ 184 Сохранение закрытых данных в образе................................................................................ 184 Передача закрытых данных в переменных среды............................................................. 185 Передача закрытых данных в томах....................................................................................... 185 Использование хранилища типа "ключ-значение".......................................................... 186 Сетевая среда....................................................................................................................................... 187 Реестр для промышленной эксплуатации................................................................................. 187 Непрерывное развертывание/доставка..................................................................................... 188 Резюме................................................................................................................................................... 189 Глава 10. Ведение журналов событий и контроль................. 190 Ведение журналов событий............................................................................................................ 191 Принятая по умолчанию подсистема ведения журналов событий в Docker........... 191 Объединение журналов.............................................................................................................. 192 Ведение журналов с использованием ELK.......................................................................... 193 Ведение журналов Docker с использованием syslog........................................................ 204 Извлечение журнальных записей из файла........................................................................ 210 Контроль и система оповещения.................................................................................................. 210 Контроль с помощью Docker Tools..........................................................................................211 cAdvisor............................................................................................................................................ 213 Кластерные решения................................................................................................................... 214 Коммерческие решения, обеспечивающие контроль и ведение журналов................... 216 Резюме................................................................................................................................................... 218 Часть III. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА И МЕТОДИКИ....... 219 Глава 11. Сетевая среда и обнаружение сервисов................ 220 Посредники.......................................................................................................................................... 221 Обнаружение сервисов.................................................................................................................... 225 etcd..................................................................................................................................................... 226 SkyDNS............................................................................................................................................. 230 Consul................................................................................................................................................ 234 Регистрация.................................................................................................................................... 239 Другие решения............................................................................................................................. 241 Варианты организации сетевой среды....................................................................................... 242 Режим bridge................................................................................................................................... 242 Режим host...................................................................................................................................... 243 Режим container............................................................................................................................. 244 Режим none..................................................................................................................................... 244 Новая сетевая среда Docker........................................................................................................... 245 Типы сетей и подключаемые модули..................................................................................... 246 Комплексные сетевые решения.................................................................................................... 247 Overlay.............................................................................................................................................. 248 Weave................................................................................................................................................. 250 Flannel............................................................................................................................................... 254 Project Calico.................................................................................................................................. 259 Резюме................................................................................................................................................... 263 Глава 12. Оркестрация, кластеризация и управление........... 266 Инструментальные средства кластеризации и оркестрации.............................................. 268 Swarm................................................................................................................................................ 268 Fleet.................................................................................................................................................... 274 Kubernetes....................................................................................................................................... 280 Mesos и Marathon.......................................................................................................................... 289 Платформы управления контейнерами..................................................................................... 300 Rancher............................................................................................................................................. 301 Clocker.............................................................................................................................................. 302 Tutum................................................................................................................................................. 304 Резюме................................................................................................................................................... 305 Глава 13. Обеспечение безопасности контейнеров . и связанные с этим ограничения....................................... 306 На что следует обратить особое внимание................................................................................ 307 Глубокая защита................................................................................................................................. 309 Принцип минимальных привилегий..................................................................................... 310 Обеспечение безопасности identidock....................................................................................311 Разделение контейнеров по хостам............................................................................................. 312 Обновления.......................................................................................................................................... 314 Не используйте неподдерживаемых драйверов................................................................. 317 Подтверждение происхождения образов.................................................................................. 317 Дайджесты Docker........................................................................................................................ 318 Механизм подтверждения контента в Docker.................................................................... 318 Повторно воспроизводимые и надежные файлы Dockerfile......................................... 323 Обеспечение безопасной загрузки ПО в файлах Dockerfile............................................... 324 Рекомендации по обеспечению безопасности......................................................................... 326 Всегда определяйте пользователя.......................................................................................... 326 Ограничения сетевой среды контейнеров........................................................................... 328 Удаляйте бинарные файлы с установленными битами setuid/setgid......................... 329 Ограничение использования оперативной памяти.......................................................... 330 Ограничение загрузки процессора......................................................................................... 331 Ограничение возможности перезапуска............................................................................... 333 Ограничения файловых систем............................................................................................... 333 Ограничение использования механизма Сapabilities ..................................................... 334 Ограничение ресурсов (ulimits).............................................................................................. 335 Использование защищенного ядра.............................................................................................. 337 Модули безопасности Linux........................................................................................................... 338 SELinux............................................................................................................................................ 338 AppArmor......................................................................................................................................... 342 Проведение контрольных проверок............................................................................................ 342 Реакция на нестандартные ситуации.......................................................................................... 343 Функциональные возможности будущих версий.................................................................. 344 Резюме................................................................................................................................................... 345 Предметный указатель.................................................... 346
|