Docker Compose для разработчика
Покупка
Издательство:
ДМК Пресс
Автор:
Гадзурас Эммануил
Год издания: 2023
Кол-во страниц: 221
Дополнительно
Вид издания:
Монография
Уровень образования:
Профессиональное образование
ISBN: 978-5-93700-203-7
Артикул: 832703.01.99
Разработка программного обеспечения становится все сложнее из-за использования различных инструментов. Приложения приходится упаковывать вместе с программными компонентами, чтобы упростить их работу, но это усложняет их запуск. С помощью Docker Compose можно всего одной командой настроить приложение и необходимые зависимости. Вы познакомитесь с основами томов и сетей Docker, с командами Compose, их назначением и вариантами использования. Настроите базу данных для повсед- невной работы, доступную через сеть Docker, установите связь между микросер- висами. Научитесь с помощью Docker Compose запускать целые стеки локально, моделировать промышленные окружения и расширять задания CI/CD. Кроме того, узнаете, как извлечь выгоду из Docker Compose при создании развертываний в промышленных окружениях, а также подготовите инфраструктуру в общедоступных облаках. Издание предназначено программистам и инженерам DevOps, которые желают научиться настраивать многоконтейнерные приложения Docker. Оно также будет полезно рук водителям групп, стремящимся
повысить продуктивность команд разработки.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эммануил Гадзурас 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