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

Docker Compose для разработчика

Покупка
Артикул: 832703.01.99
Доступ онлайн
1 199 ₽
В корзину
Разработка программного обеспечения становится все сложнее из-за использования различных инструментов. Приложения приходится упаковывать вместе с программными компонентами, чтобы упростить их работу, но это усложняет их запуск. С помощью Docker Compose можно всего одной командой настроить приложение и необходимые зависимости. Вы познакомитесь с основами томов и сетей Docker, с командами Compose, их назначением и вариантами использования. Настроите базу данных для повсед- невной работы, доступную через сеть Docker, установите связь между микросер- висами. Научитесь с помощью Docker Compose запускать целые стеки локально, моделировать промышленные окружения и расширять задания CI/CD. Кроме того, узнаете, как извлечь выгоду из Docker Compose при создании развертываний в промышленных окружениях, а также подготовите инфраструктуру в общедоступных облаках. Издание предназначено программистам и инженерам DevOps, которые желают научиться настраивать многоконтейнерные приложения Docker. Оно также будет полезно рук водителям групп, стремящимся повысить продуктивность команд разработки.
19
36
53
54
55
93
123
165
Гадзурас, Э. Docker Compose для разработчика / Э. Гадзурас. - Москва : ДМК Пресс, 2023. - 222 с. - ISBN 978-5-93700-203-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2150533 (дата обращения: 03.06.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эммануил Гадзурас

Docker Compose  
для разработчика

Emmanouil Gkatziouras

A Developer’s  
Essential Guide to 
Docker Compose

Simplify the development and orchestration  
of multi-container applications

BIRMINGHAM—MUMBAI

Эммануил Гадзурас

Docker Compose  
для разработчика 

Упростите разработку и оркестрацию 
многоконтейнерных приложений

Москва, 2023

УДК 004.451Docker
ББК32.972.1
Г13

ГадзурасЭ.
Г13  
Docker Compose для разработчика / пер. с англ. А. Н. Киселева. – М.: ДМК 
Пресс, 2023. – 220 с.: ил. 

ISBN978-5-93700-203-7

Разработка программного обеспечения становится все сложнее из-за использования различных инструментов. Приложения приходится упаковывать вместе 
с программными компонентами, чтобы упростить их работу, но это усложняет 
их запуск. С помощью Docker Compose можно всего одной командой настроить 
приложение и необходимые зависимости.
Вы познакомитесь с основами томов и сетей Docker, с командами Compose, их 
назначением и вариантами использования. Настроите базу данных для повседневной работы, доступную через сеть Docker, установите связь между микросервисами. Научитесь с помощью Docker Compose запускать целые стеки локально, 
моделировать промышленные окружения и расширять задания CI/CD. Кроме 
того, узнаете, как извлечь выгоду из Docker Compose при создании развертываний 
в промышленных окружениях, а также подготовите инфраструктуру в общедоступных облаках.
Издание предназначено программистам и инженерам DevOps, которые желают 
научиться настраивать многоконтейнерные приложения Docker. Оно также будет 
полезно руководителям групп, стремящимся повысить продуктивность команд 
разработки.

УДК 004.451Docker
ББК 32.972.1

Copyright © Packt Publishing 2022. First published in the English language under the title 
‘A Developer's Essential Guide to Docker Compose – (9781803234366)’.

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

ISBN 978-1-80323-436-6 (англ.)  
© 2022 Packt Publishing
ISBN 978-5-93700-203-7 (рус.)  
©  Перевод, оформление, издание,  
ДМК Пресс, 2023

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

Содержание

От издательства ....................................................................................................13

Об авторе .................................................................................................................14

О рецензенте .........................................................................................................15

Предисловие ..........................................................................................................16

Часть I. ОСНОВЫ DOCKER COMPOSE ..................................................19

Глава 1. Введение в Docker Compose ........................................................20

Технические требования ...........................................................................................21
Знакомство с Docker Compose и особенностями его использования .................21
Установка Docker Compose ........................................................................................21
Docker Desktop ........................................................................................................22
Установка Docker ....................................................................................................22
В macOS ...............................................................................................................22
В Windows ...........................................................................................................23
В Linux .................................................................................................................25
docker compose и docker-compose ........................................................................27
Знакомство с принципами работы Docker Compose ............................................27
Ваш первый файл Docker Compose ..........................................................................29
Использование образа Docker в Docker Compose ..................................................32
Итоги ............................................................................................................................35

Глава 2. Запуск первого приложения с помощью Compose ..........36

Технические требования ...........................................................................................37
Создание простого приложения ..............................................................................37
Установка Go ...........................................................................................................37
REST API в Go с использованием Gin ..................................................................37

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

Приложение ............................................................................................................38
Запуск Redis с помощью Compose ...........................................................................40
Использование командной оболочки в контейнере, управляемом Compose ....41
Взаимодействие со службой Docker Compose ........................................................42
Упаковка приложения с помощью Docker и Compose ..........................................44
Передача конфигурации через окружение ........................................................45
Создание образа Docker ........................................................................................46
Запуск образа..........................................................................................................46
Создание образа с помощью Compose ...............................................................48
Сборка и определение имени образа ......................................................................48
Запуск многоконтейнерного приложения с помощью Compose ...................49
Проверка работоспособности ..........................................................................49
Как действует проверка работоспособности .................................................49
Добавление проверки работоспособности в Compose .................................50
Зависимости от служб ...........................................................................................51
Точка входа, аргументы и переменные окружения .....................................52
Файлы с переменными окружения .................................................................52
Сценарий ............................................................................................................52
Настройка точки входа .....................................................................................53
Метки .......................................................................................................................53
Образы .....................................................................................................................54
Контейнеры ............................................................................................................54
Итоги ............................................................................................................................55

Глава 3. Основы сетей и томов .....................................................................56

Технические требования ...........................................................................................57
Основы томов Docker ................................................................................................57
Подключение тома Docker к контейнеру................................................................57
Общие тома .............................................................................................................59
Тома только для чтения ........................................................................................59
Драйверы томов Docker ............................................................................................60
Использование драйвера тома вместо локального монтирования ...............61
Объявление томов Docker в файлах Compose ........................................................61
Подключение томов Docker к существующему приложению .............................62
Создание конфигурационного файла .....................................................................63
Монтирование файла с использованием тома ......................................................63
Монтирование томов только для чтения ...........................................................64
Основы сетей Docker..................................................................................................66
Мостовая сеть .........................................................................................................67
Мостовая сеть, определяемая пользователем ...............................................67
Сеть хоста ................................................................................................................68
Оверлейная сеть .....................................................................................................68
Определение сетей в конфигурации Compose ......................................................68
Добавление дополнительной сети в текущее приложение .................................70
Итоги ............................................................................................................................72

 Содержание

Глава 4. Выполнение команд Docker Compose.....................................73

Технические требования ...........................................................................................73
Введение в команды Compose ..................................................................................74
Интерфейс командной строки Docker и команды Compose ................................74
Настройка целевого приложения ........................................................................74
Команды подготовки .................................................................................................75
build ..........................................................................................................................75
create ........................................................................................................................76
up ..............................................................................................................................76
Команды управления контейнерами ......................................................................78
exec ...........................................................................................................................78
run ............................................................................................................................78
pause.........................................................................................................................79
unpause ....................................................................................................................79
start и stop ...............................................................................................................80
restart .......................................................................................................................80
kill .............................................................................................................................81
ps ..............................................................................................................................81
Команды освобождения ресурсов ...........................................................................82
down .........................................................................................................................82
rm ..............................................................................................................................84
Команды управления образами ...............................................................................85
Список образов ......................................................................................................86
Извлечение образов ..............................................................................................86
Отправка образов ..................................................................................................87
Локальный реестр Docker в Compose ..................................................................87
Отправка в локальный реестр..............................................................................88
Команды мониторинга .........................................................................................89
logs ...........................................................................................................................89
top .............................................................................................................................90
events .......................................................................................................................90
Другие команды .........................................................................................................91
help ...........................................................................................................................91
version ......................................................................................................................91
port ...........................................................................................................................91
config ........................................................................................................................91
Итоги ............................................................................................................................92

Часть II. ПОВСЕДНЕВНАЯ РАЗРАБОТКА С ПОМОЩЬЮ 
DOCKER COMPOSE .........................................................................................93

Глава 5. Подключение микросервисов друг к другу .........................94

Технические требования ...........................................................................................95
Микросервис определения местоположения ........................................................95

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

Добавление службы определения местоположения в Compose .......................101
Добавление сети для микросервиса местоположения .......................................102
Выполнение запросов к микросервису местоположения ..................................103
Потоковая передача событий задач ......................................................................105
Добавление микросервиса обработки событий задач .......................................107
Итоги ..........................................................................................................................109

Глава 6. Службы мониторинга с Prometheus .......................................110

Что такое Prometheus? .............................................................................................110
Добавление конечной точки для Prometheus ......................................................111
Добавление конечной точки метрик в диспетчер задач ...............................111
Добавление конечной точки метрик в службу определения 
местоположения ..................................................................................................112
Экспорт метрик из службы событий .................................................................113
Настройка анализа метрик в Prometheus .............................................................114
Добавление Prometheus в сеть Compose ...............................................................116
Отправка метрик в Prometheus .........................................................................118
Первый запрос метрик ............................................................................................119
Добавление уведомления ...................................................................................120
Итоги ..........................................................................................................................122

Глава 7. Комбинирование файлов Compose ........................................123

Технические требования .........................................................................................124
Разделение файлов Compose ..................................................................................124
Основа для диспетчера задач ............................................................................124
Служба определения местоположения .............................................................125
Служба событий ...................................................................................................126
Диспетчер задач ...................................................................................................126
Prometheus ............................................................................................................127
Объединение файлов Compose ..............................................................................128
Выбор файлов Compose для запуска .....................................................................129
Использование Hoverfly ......................................................................................129
Наследование служб ............................................................................................129
Захват трафика с помощью Hoverfly .................................................................130
Извлечение данных для имитации службы определения  
местоположения ..............................................................................................132
Извлечение данных для имитации службы Pushgateway ..........................132
Адаптация моделирования ............................................................................132
Создание фиктивных приложений с помощью Hoverfly ...............................133
Имитация службы определения местоположения .....................................133
Имитация Pushgateway ...................................................................................133
Создание различных окружений ...........................................................................134
Запуск с включенным захватом ........................................................................134

 Содержание

Запуск с отключенным мониторингом ............................................................135
Запуск приложений по отдельности .................................................................135
Объединение нескольких файлов Compose в один.............................................136
Использование команды config .........................................................................136
Итоги ..........................................................................................................................137

Глава 8. Локальное моделирование промышленного  
окружения .............................................................................................................138

Технические требования .........................................................................................139
Разделение приватных и общедоступных рабочих нагрузок ...........................139
Настройка локальной службы DynamoDB ............................................................140
Создание таблиц DynamoDB ..............................................................................140
Взаимодействие с локальной DynamoDB .........................................................141
Настройка локальной службы SQS ........................................................................142
Настройка локальной службы S3 ...........................................................................143
Настройка функции Lambda на основе REST .......................................................144
Настройка функции Lambda на основе SQS .........................................................147
Ссылки Docker Compose ......................................................................................148
Соединение функций Lambda ................................................................................149
Итоги ..........................................................................................................................151

Глава 9. Создание расширенных заданий CI/CD ...............................153

Технические требования .........................................................................................154
Введение в CI/CD ......................................................................................................154
Использование действий GitHub Actions с Docker Compose ..............................155
Создание первого действия GitHub Action ......................................................155
Кеширование собранных образов .....................................................................156
Создание образов приложений .........................................................................157
Тестирование приложения Compose ................................................................157
Использование конвейеров Bitbucket с Docker Compose ...................................158
Создание первого конвейера Bitbucket ............................................................158
Кеширование образов Compose и Docker .........................................................159
Создание образов приложений .........................................................................160
Тестирование приложения Compose ................................................................161
Использование Travis с Docker Compose ...............................................................162
Создание первого задания в Travis ...................................................................162
Кеширование Compose ........................................................................................162
Создание образов приложений .........................................................................163
Тестирование приложения Compose ................................................................163
Итоги ..........................................................................................................................164

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