![](https://habrastorage.org/getpro/habr/upload_files/3de/93c/320/3de93c320e616359de4aba1d9ad0e372.jpeg)
Факт: аудитории Хабра нравятся рецензии на книги по базовым ИТ-технологиям. И сегодня — как раз такая:«Docker. Вводный курс. 3 издание» (Docker: Up & Running, 3rd Edition) от издательства O'Reilly Media, в переводе от БХВ Петербург. Популярное руководство по Docker, написанное Шоном П. Кейном и Карлом Маттиасом, выпущено в 2023 году и предназначена для разработчиков, сисадминов и DevOps-инженеров. Полезность книги — в подробном объяснении технологии Docker от самых основ и до продвинутых концепций и практик.
***
Начнем обзор со ссылки на страницу книги «Docker. Вводный курс. 3 издание» на с айте БХВ.
И напомним, что на все книги по компьютерным технологиям от издательств “БХВ Петербург” и “Фолиант” доступен промокод SSPSOFT на скидку 25% как подарок читателям Хабра от нашего блога.
Кстати, если кто-то хочет прочесть книгу в оригинале на английском языке и бесплатно, то мы нашли ресурс, где можно скачать электронную версию книги Docker: Up & Running, 3rd Edition в формате epub. При желании, этот файл можно легко конвертировать в PDF, если вам удобнее читать именно в таком формате.
Для кого эта книга
Шон Кейн и Карл Маттиас — опытные профессионалы в области информационных технологий, чьи разносторонние знания и богатый опыт позволили им создать всеобъемлющее руководство по Docker.
Шон Кейн — основатель ресурса techlabs.sh и лид по продакшн-операциям в SuperOrbital. Он специализируется на разработке, обучении и написании материалов о современных процессах DevOps, включая Kubernetes, Docker, Terraform и другие технологии. Шон является ведущим изобретателем патента, связанного с контейнерами, и посвящает много свободного времени написанию статей, преподаванию и выступлениям на технологические темы.
Карл Маттиас занимает должность вице-президента по архитектуре в Community.com. До этого он работал в нескольких крупных технологических компаниях, где на протяжении более чем 25 лет занимал ряд высоких инженерных и руководящих должностей. Карл специализируется на распределенных системах, языках программирования Go, Ruby и Elixir, масштабируемых хранилищах данных, автоматизированной инфраструктуре и воспроизводимых системах.
А теперь о том, кого авторы и издательство видят в качестве читателей этой книги. Если кратко — то всех, кто стремится освоить и эффективно применять Docker и контейнеризацию в своей работе.
В первую очередь, эта книга будет полезна таким читателям:
1. Разработчикам, желающим улучшить процесс разработки и развертывания своих приложений с помощью контейнеров.
2. Системным администраторам, стремящимся оптимизировать управление инфраструктурой и повысить ее эффективность.
3. DevOps-инженерам, заинтересованным в улучшении процессов непрерывной интеграции и доставки (CI/CD) с использованием Docker.
4. Архитекторам программного обеспечения, планирующим внедрение контейнерных технологий в масштабах организации.
5. Специалистам по SaaS/PaaS, работающим с сервисами, интегрированными с Docker и Kubernetes.
6. Студентам технических вузов, слушателям ИТ-курсов и джунам в широком смысле этого термина, желающим получить фундаментальные знания о современных технологиях контейнеризации.
Пару мнений о книге от читателей с Амазон
В этот раз не будет раздела про плюсы и минусы книги — лучше прочесть живые отклики опытных спецов, оставленные на странице книги на Амазон, чтобы получить совет — покупать эту книгу или нет.
Evan Volgas: “Эта книга подойдет как новичкам, так и продвинутым пользователям. В каждой главе много полезной информации, а погружение в детали приятно увеличивается по мере чтения книги.
Хотелось бы, чтобы автор уделил больше времени использованию облачных сервисов, таких как EKS и CloudRun. Есть глава о EKS, но концепции и вызовы командной строки объясняются лишь поверхностно. Это резко контрастирует с остальной частью книги, где подробно все расписано. Если бы автор пересмотрел эту главу и, возможно, добавил еще две главы для GCS и Azure, эта книга легко получила бы 5 звезд. Как бы то ни было, это надежная четырехзвездочная книга с большим количеством отличного материала как для новичков, так и для опытных пользователей Docker.”
Yifan Yang: “Я не думаю, что книга подойдет совсем уж новичкам, некоторые примеры (на мой взгляд) недостаточно хорошо объяснены для людей без опыта работы с Docker. Как по мне, целевая аудитория этой книги — DevOps инженеры уровня мидл.”
Что интересного в главах
По странной причине, на сайте издательства БХВ не нашли оглавления русского издания в виде пробного PDF-фрагмента, как это у них принято. Но зато мы нашли это оглавление на Озон (там кстати книга заметно дороже).
Английское оглавление есть на сайте O’REILLY, а кроме того — в бесплатной версии этой книги на сайте ebin.pub, о чем мы сказали выше.
А теперь пройдемся по главам - это может показаться чуть-чуть скучным, но зато у вас будет понимание всей темы, как будто вы проанализировали содержание глав и составили их конспект:
Глава 1. Введение
В этой главе авторы представляют концепцию Docker, объясняя его преимущества и потенциальное влияние на разработку и развертывание программного обеспечения. Рассматриваются ключевые преимущества рабочего процесса Docker, включая упрощение развертывания и масштабирования приложений. Авторы также уточняют, сферу применения Docker, чтобы избежать распространенных заблуждений. Глава завершается списком важной терминологии по теме книги.
Глава 2. Ландшафт Docker
Эта глава погружается в экосистему Docker, объясняя, как он упрощает процессы разработки и развертывания. Обсуждается широкая поддержка и принятие Docker в индустрии. Рассматривается архитектура Docker, включая модель клиент-сервер, сетевые аспекты и отличие от виртуальных машин. Авторы описывают основные инструменты Docker и объясняют, как получить максимальную отдачу от использования контейнеров. Глава также охватывает концепцию неизменяемой инфраструктуры и важность создания приложений без сохранения состояния при работе с Docker.
Глава 3. Установка Docker
В этой главе подробно рассматривается процесс установки Docker на различных операционных системах. Она охватывает установку клиента Docker на Linux, macOS и Windows, а также установку сервера Docker на системах на базе systemd и не-Linux машинах. Авторы предоставляют пошаговые инструкции по тестированию установки на различных дистрибутивах Linux, включая Ubuntu, Fedora и Alpine Linux. Глава завершается обзором основных компонентов сервера Docker.
Глава 4. Работа с образами Docker
Глава начинается с объяснения анатомии Dockerfile и процесса сборки образа. Рассматриваются темы запуска образов, использования аргументов сборки и переменных окружения для конфигурации. Обсуждается создание пользовательских базовых образов и хранение образов в публичных и частных реестрах. Авторы предоставляют советы по оптимизации образов, включая минимизацию их размера и эффективное использование слоев. Глава также охватывает устранение неполадок при сборке и создание мульти-архитектурных образов.
Глава 5. Работа с контейнерами
Эта глава углубляется в концепцию контейнеров, начиная с краткой истории технологии контейнеризации. Подробно рассматривается процесс создания, настройки и управления контейнерами, включая использование томов хранения и квот ресурсов. Обсуждаются различные операции с контейнерами, такие как запуск, остановка, уничтожение, пауза и возобновление. Авторы также объясняют, как настроить автоматический перезапуск контейнеров и как эффективно очищать неиспользуемые контейнеры и образы. Глава завершается кратким обзором контейнеров Windows.
Глава 6. Сбор информации в Docker
В этой главе рассматриваются различные инструменты и команды для исследования и мониторинга Docker-окружения. Авторы объясняют, как получить информацию о версии Docker и сервере, как обновлять образы и инспектировать контейнеры. Обсуждаются методы доступа к работающим контейнерам и управления ими. Глава также охватывает темы логирования, мониторинга статистики контейнеров и проверки их здоровья. Рассматриваются продвинутые инструменты мониторинга, такие как cAdvisor и Prometheus.
Глава 7. Отладка контейнеров
Эта глава фокусируется на методах и инструментах для отладки контейнеров Docker. Авторы объясняют, как анализировать вывод процессов, инспектировать работающие процессы и контролировать их. Рассматриваются способы исследования сетевых конфигураций контейнеров и истории образов. Глава также охватывает методы инспекции файловой системы контейнера, что полезно при поиске и устранении проблем. Эти техники отладки помогают разработчикам и операторам эффективно диагностировать и решать проблемы в контейнеризованных приложениях.
Глава 8. Docker Compose
В этой главе рассматривается Docker Compose - инструмент для определения и управления мульти-контейнерными приложениями. Авторы объясняют, как настроить и использовать Docker Compose для запуска сервисов. На примере приложения Rocket.Chat демонстрируются возможности Docker Compose. Обсуждаются различные аспекты управления конфигурацией, включая работу с значениями по умолчанию, обязательными значениями и файлами .env. Эта глава помогает читателям понять, как эффективно организовывать и управлять сложными приложениями с несколькими взаимосвязанными контейнерами.
Глава 9. Контейнеры и продакшн
Эта глава фокусируется на подготовке контейнеров к использованию в продакшн среде. Рассматриваются ключевые аспекты, такие как управление заданиями, ограничение ресурсов, настройка сети и конфигурации. Обсуждаются вопросы упаковки и доставки контейнеров, а также организации логирования и мониторинга. Авторы также затрагивают темы планирования и обнаружения сервисов. Глава завершается обзором роли Docker в DevOps-пайплайне, демонстрируя, как контейнеры могут улучшить процесс разработки и развертывания приложений.
Глава 10. Масштабирование контейнеров
В этой главе рассматриваются различные платформы и инструменты для управления контейнерами в крупномасштабных средах. Обсуждается режим Docker Swarm для оркестрации контейнеров. Значительное внимание уделяется Kubernetes - популярной платформе для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями. Авторы также рассматривают Amazon ECS и Fargate, предоставляя инструкции по настройке и использованию этих сервисов AWS для управления контейнерами. Глава помогает читателям понять, как эффективно масштабировать контейнерные приложения в различных средах.
Глава 11. Расширенные концепции (Продвинутые темы)
Эта глава углубляется в технические детали работы контейнеров, включая использование cgroups и пространств имен. Рассматриваются аспекты безопасности, такие как работа с UID 0, привилегированные контейнеры и безопасный режим вычислений. Обсуждается конфигурация демона Docker и продвинутые настройки сети и хранения. Авторы также рассматривают инструменты для отладки контейнеров без оболочки и возможность замены времени выполнения Docker. Глава завершается обзором gVisor - песочницы для времени выполнения контейнеров от Google.
Глава 12. Экосистема
В этой главе рассматриваются альтернативные инструменты и технологии, дополняющие или конкурирующие с Docker. Обсуждаются клиентские инструменты, такие как nerdctl, podman и buildah, которые предлагают альтернативные способы работы с контейнерами. Авторы также описывают комплексные инструменты для разработчиков, включая Rancher Desktop и Podman Desktop, которые предоставляют интегрированные среды для работы с контейнерами. Эта глава помогает читателям понять разнообразие экосистемы контейнеров и выбрать наиболее подходящие инструменты для своих потребностей.
Глава 13. Проектирование контейнерной платформы
Эта глава фокусируется на принципах проектирования эффективных контейнерных приложений. Рассматривается методология Twelve-Factor App, которая предлагает набор лучших практик для создания масштабируемых и поддерживаемых приложений. Авторы также обсуждают Reactive Manifesto, объясняя, как принципы отзывчивости, устойчивости, эластичности и ориентации на сообщения применимы к контейнерным приложениям. Эта глава предоставляет читателям ценные рекомендации по проектированию надежных и эффективных контейнерных платформ.
Глава 14. Заключительная
В заключительной главе авторы подводят итоги книги и рассматривают будущее технологии контейнеров. Они обсуждают проблемы, которые решает Docker, и преимущества рабочего процесса на основе контейнеров. Рассматриваются ключевые аспекты, такие как минимизация артефактов развертывания и оптимизация хранения и извлечения данных. Авторы подчеркивают преимущества использования Docker и контейнеризации в целом, предоставляя читателям понимание того, как эти технологии могут улучшить процессы разработки и развертывания программного обеспечения.
Заключение
В России издано совсем мало переводных книг по Docker, причем достаточно свежих и с актуальным содержимым. На наш взгляд, несмотря на всего 4 звезды на Амазон, купить книгу все же стоит - деньги, вложенные в знания и личные компетенции, всегда окупаются.
Сочетание глубоких технических знаний Шона Кейна в области DevOps и контейнеризации с обширным опытом Карла Маттиаса в архитектуре и разработке программного обеспечения делает их весьма компетентными авторами для создания этого теоретического и практического руководства по Docker.
Добавим каплю рекламы от нашего блога: компания SSP SOFT приглашает на позиции инженеров QA и DevOps, системного аналитика, аналитика данных, разработчиков на Java, JS, React и Python, 1С — см. страницу на hh.ru. Если вашей специальности нет в текущих вакансиях, все равно присылайте резюме, т.к. новые позиции в командах открываются еженедельно (пишите в Telegram или на почту job@ssp-soft.com).
Успехов в изучении и практическом применении Docker!