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

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

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

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 ₽
В корзину