Использование DockerПрактическое пособие.

Эдриен Моуэт»Использование Docker» ДМК Пресс, 2017 год, 354 стр. O’Reilly, ISBN: 978-5-97060-426-7; (5,44 мб. pdf)

В этой книге предпринята попытка дать целостный подход к программной среде Docker с обоснованием ее использования и описанием способов ее практического применения и внедрения в рабочий поток разработки программного обеспечения.

Книга полностью охватывает весь жизненный цикл программного продукта — от разработки до промышленного тиражирования и сопровождения. Она предназначена для разработчиков, инженеров по эксплуатации и системных администраторов, особенно для тех, кто живо интересуется практическим применением технологии DevOps.

Руководство предоставит обширный материал: от основ, необходимых для запуска десятка контейнеров, до описания сопровождения крупной системы с множеством хостов в сетевой среде со сложным режимом планирования. Книга последовательно проведёт вас по всем этапам, необходимым для разработки, тестирования и развёртывания любого веб-приложения, использующего Docker.

Книга состоит из трех основных частей:

  1. — определение контейнеров и краткого описания их свойств;
  2. — технология использования Docker в разработке программного обеспечения;
  3. — инструменты и методики;

Вывод: Docker очень хорошо подходит для решения перечисленных задач:

удобная передача серверного проекта клиенту
обеспечение тиражируемости серверов
обеспечение «клонирования» ранее созданных серверных конфигураций

Оглавление книги

Содержание.

Часть 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

СкачатьPDF

Похожая литература