Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Использование Docker

Покупка
Артикул: 712453.01.99
Доступ онлайн
799 ₽
В корзину
Контейнеры Docker предоставляют простые быстрые и надежные методы разработки, распространения и запуска программного обеспечения, особенно в динамических и распределенных средах. Из книги вы узнаете, почему контейнеры так важны, какие преимущества вы получите от применения Docker и как сделать Docker частью процесса разработки. Вы последовательно пройдете по всем этапам, необходимым для создания, тестирования и развертывания любого веб-приложения, использующего Docker. Также вы изучите обширный материал — начиная от основ, необходимых для запуска десятка контейнеров, и заканчивая описанием сопровождения крупной системы со множеством хостов в сетевой среде со сложным режимом планирования. Издание предназначено разработчикам, инженерам по эксплуатации и системным администраторам.
Моуэт, Э. Использование Docker / Э. Моуэт ; пер. с англ. А.В. Снастина ; под науч. ред. А. А. Маркелова. - Москва : ДМК Пресс, 2017. - 354 с. - ISBN 978-5-97060-426-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/1027859 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эдриен Моуэт

Использование Docker

Adrian Mouat

Using Docker

Developing and Deploying Software  
with Containers

Beijing • Boston • Farnham • Sebastopol • Tokyo 

Эдриен Моуэт

Использование Docker

Разработка и внедрение  

программного обеспечения

при помощи технологии контейнеров

Москва, 2017

УДК 004.451Docker
ББК 32.972.1

М89

Моуэт Э.

М89
Использование Docker / пер. с англ. А. В. Снастина; науч. ред. А. А. Маркелов. – М.: ДМК Пресс, 2017. – 354 с.: ил.

ISBN 978-5-97060-426-7

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

Издание предназначено разработчикам, инженерам по эксплуатации и системным админист
раторам.

УДК 004.451Docker
ББК 32.972.1

Authorized Russian translation of the English edition of Using Docker, ISBN 9781491915769. 
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or 

controls all rights to publish and sell the same.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 

бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность 

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

ISBN 978-1-491-91576-9 (анг.)
© 2016, Adrian Mouat

ISBN 978-5-97060-426-7 (рус.)
© Оформление, издание, перевод, ДМК Пресс, 2017

Посвящается всем, кто пытается что-то делать,  
независимо от того, чем заканчиваются их попытки:  
неудачей или успехом.

Содержание

Предисловие...................................................................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

Содержание  7

Уровни образа ..................................................................................................................................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

Содержание  9

Глава.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

Доступ онлайн
799 ₽
В корзину