Searching...
Русский
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Docker

Docker

Up & Running: Shipping Reliable Containers in Production
автор Karl Matthias 2015 232 страниц
3.77
100+ оценки
Слушать
Try Full Access for 7 Days
Unlock listening & more!
Continue

ключевых вывода

1. Docker революционизирует развертывание и масштабирование приложений

Docker находится в центре некоторых из самых значимых технологий последнего десятилетия.

Упрощенное развертывание. Docker позволяет разработчикам упаковывать приложения со всеми их зависимостями в стандартизированные единицы, называемые контейнерами. Этот подход значительно упрощает процесс развертывания, обеспечивая согласованность в различных средах.

Улучшенная масштабируемость. Абстрагируя основную инфраструктуру, Docker позволяет легко масштабировать приложения по горизонтали. Контейнеры могут быстро запускаться или останавливаться в зависимости от спроса, что позволяет более эффективно использовать ресурсы.

Поддержка DevOps. Docker устраняет разрыв между командами разработки и эксплуатации, предоставляя общий язык и набор инструментов. Это способствует лучшему сотрудничеству и более плавным рабочим процессам на протяжении всего жизненного цикла приложения.

2. Контейнеры предлагают легковесную, портативную и эффективную виртуализацию

Контейнеры представляют собой принципиально иной подход, при котором все контейнеры используют одно ядро, а изоляция реализуется полностью в рамках этого ядра.

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

Портативность. Контейнеры Docker инкапсулируют приложение и его зависимости, обеспечивая согласованное поведение в различных средах. Этот подход "создай один раз, запускай везде" упрощает рабочие процессы разработки и развертывания.

Изоляция. Хотя контейнеры не обеспечивают такой же уровень изоляции, как виртуальные машины, они предлагают достаточную степень разделения для большинства случаев использования. Они используют функции ядра Linux, такие как пространства имен и cgroups, для создания изолированных сред для приложений.

3. Архитектура Docker: клиент, сервер и реестр

Docker состоит как минимум из двух частей: клиента и сервера/демона. Опционально существует третий компонент, называемый реестром, который хранит образы Docker и метаданные об этих образах.

Модель клиент-сервер. Docker использует архитектуру клиент-сервер, где клиент Docker взаимодействует с демоном Docker, который отвечает за создание, запуск и распространение контейнеров.

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

Взаимодействие компонентов:

  • Клиент Docker: Отправляет команды демону Docker
  • Демон Docker: Управляет объектами Docker (образами, контейнерами, сетями, томами)
  • Реестр Docker: Хранит образы Docker

4. Создание и управление образами и контейнерами Docker

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

Создание образов. Образы Docker создаются с использованием Dockerfile, который содержит серию инструкций для создания образа. Каждая инструкция создает новый слой, что позволяет эффективно хранить и передавать образы.

Жизненный цикл контейнера:

  • Создание: docker create
  • Запуск: docker start
  • Выполнение: docker run (объединяет создание и запуск)
  • Остановка: docker stop
  • Удаление: docker rm

Инструменты отладки:

  • docker logs: Просмотр журналов контейнера
  • docker exec: Выполнение команд внутри работающего контейнера
  • docker inspect: Получение детальной информации об объектах Docker

5. Сетевые и хранилищные решения в средах Docker

Docker выделяет частную подсеть из неиспользуемого блока частных подсетей RFC 1918. Он определяет, какие сетевые блоки не используются при запуске, и выделяет один для виртуальной сети.

Модели сетей:

  • Bridge: Сетевой драйвер по умолчанию, создающий частную сеть для контейнеров
  • Host: Убирает сетевую изоляцию, используя сеть хоста напрямую
  • Overlay: Позволяет контейнерам общаться между несколькими хостами Docker
  • Macvlan: Назначает MAC-адрес контейнеру, делая его видимым как физическое устройство в сети

Варианты хранения:

  • Том: Предпочтительный механизм для постоянных данных, управляемый Docker
  • Привязка монтирования: Отображение файла или каталога хоста в контейнер
  • tmpfs монтирование: Временное хранение данных в памяти хоста

6. Отладка и мониторинг контейнеров Docker

Иногда вам действительно нужно просто остановить наш контейнер, как описано выше. Но есть случаи, когда мы не хотим, чтобы наш контейнер что-либо делал какое-то время.

Методы отладки:

  • docker logs: Просмотр вывода контейнера
  • docker exec: Выполнение команд внутри работающего контейнера
  • docker inspect: Получение детальной информации о контейнерах
  • docker stats: Мониторинг использования ресурсов контейнера в реальном времени

Инструменты мониторинга:

  • cAdvisor: Предоставляет данные об использовании ресурсов и производительности
  • Prometheus: Сбор и хранение метрик из контейнеров
  • Grafana: Визуализация метрик контейнеров и создание дашбордов

7. Масштабирование Docker с помощью инструментов оркестрации

Вероятно, первым общедоступным инструментом в этой области является Fleet от CoreOS, который работает с systemd на хостах, чтобы действовать как распределенная система инициализации.

Платформы оркестрации:

  • Docker Swarm: Родное кластеризование для Docker
  • Kubernetes: Открытая платформа оркестрации контейнеров
  • Apache Mesos: Ядро распределенных систем, которое может запускать контейнеры Docker

Ключевые функции:

  • Обнаружение сервисов
  • Балансировка нагрузки
  • Масштабирование
  • Пошаговые обновления
  • Самовосстановление

8. Соображения безопасности для развертываний Docker

Поскольку это демон, который работает с привилегиями и имеет прямой контроль над вашими приложениями, вероятно, не стоит открывать Docker напрямую в Интернете.

Лучшие практики безопасности:

  • Запуск контейнеров от имени пользователей без прав root
  • Использование минимальных базовых образов для уменьшения поверхности атаки
  • Реализация сегментации сети
  • Регулярное обновление и исправление Docker и образов контейнеров
  • Использование Docker Content Trust для подписания и проверки образов

Инструменты безопасности:

  • AppArmor/SELinux: Системы обязательного контроля доступа
  • Docker Bench Security: Автоматизированный инструмент оценки безопасности
  • Clair: Открытый сканер уязвимостей для контейнеров

9. Проектирование платформы Docker, готовой к производству

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

Ключевые соображения:

  • Высокая доступность и отказоустойчивость
  • Масштабируемость и производительность
  • Мониторинг и ведение журналов
  • Резервное копирование и восстановление после сбоев
  • Непрерывная интеграция и развертывание (CI/CD)

Лучшие практики:

  • Использование инструментов оркестрации для управления крупномасштабными развертываниями
  • Реализация надлежащих решений для ведения журналов и мониторинга
  • Разработка надежного конвейера CI/CD для сборки и развертывания контейнеров
  • Регулярное тестирование и обновление вашей инфраструктуры Docker

10. Методология Twelve-Factor App для контейнеризированных приложений

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

Ключевые принципы:

  1. Кодовая база: Одна кодовая база, отслеживаемая в системе управления версиями, множество развертываний
  2. Зависимости: Явное объявление и изоляция зависимостей
  3. Конфигурация: Хранение конфигурации в окружении
  4. Вспомогательные сервисы: Обращение с вспомогательными сервисами как с подключенными ресурсами
  5. Сборка, выпуск, запуск: Строгое разделение этапов сборки и запуска
  6. Процессы: Выполнение приложения как одного или нескольких статeless процессов
  7. Привязка портов: Экспорт сервисов через привязку портов
  8. Конкуренция: Масштабирование через модель процессов
  9. Одноразовость: Максимальная надежность с быстрым запуском и плавным завершением
  10. Паритет dev/prod: Поддержание максимального сходства между разработкой, тестированием и производством
  11. Логи: Обращение с логами как с потоками событий
  12. Административные процессы: Выполнение административных/управляющих задач как одноразовых процессов

Преимущества для приложений Docker:

  • Улучшенная масштабируемость и поддерживаемость
  • Упрощенное развертывание и эксплуатация
  • Лучшая согласованность с облачными архитектурами

Последнее обновление:

FAQ

What’s "Docker: Up & Running" by Karl Matthias about?

  • Comprehensive Docker introduction: The book offers a thorough overview of Docker and Linux containers, explaining what Docker is, how it works, and its role in modern software delivery.
  • Production-focused guidance: It walks readers from installation to deploying and managing containers at scale, emphasizing production readiness, orchestration, and security.
  • Practical experience shared: The authors draw on real-world experience running Docker in production at New Relic, providing actionable advice and lessons learned.
  • Audience and approach: Targeted at developers, operations engineers, and architects, the book balances technical depth with practical workflow improvements and organizational benefits.

Why should I read "Docker: Up & Running" by Karl Matthias?

  • Real-world expertise: The authors share insights from building and operating Docker platforms in production, going beyond official documentation to address practical challenges.
  • Covers full Docker lifecycle: Readers learn about installation, image building, container management, deployment, scaling, and advanced topics, gaining a holistic understanding of Docker.
  • Actionable best practices: The book helps readers avoid common pitfalls, improve workflows, and leverage Docker’s strengths for faster, more reliable software delivery.
  • Advanced topics included: It explores orchestration, security, and platform design, making it valuable for both beginners and experienced users.

What are the key takeaways from "Docker: Up & Running" by Karl Matthias?

  • Docker’s transformative impact: Docker standardizes application packaging and deployment, reducing complexity and improving collaboration between development and operations.
  • Production readiness is essential: The book emphasizes best practices for deploying, securing, and managing containers in real-world environments.
  • Workflow improvements: Readers learn how Docker streamlines development, testing, and deployment pipelines, supporting modern DevOps practices.
  • Scalability and resilience: The book covers orchestration tools and design principles for building scalable, maintainable, and secure container platforms.

What are the main concepts and benefits of Docker explained in "Docker: Up & Running"?

  • Containers vs. virtual machines: Docker containers are lightweight, sharing the host OS kernel, which makes them faster and more resource-efficient than traditional VMs.
  • Immutable infrastructure: Docker encourages stateless, throwaway containers, reducing configuration drift and deployment errors.
  • Portability and consistency: Docker images bundle applications and dependencies, ensuring consistent environments across development, testing, and production.
  • Simplified workflows: Standardized containers reduce “works on my machine” issues and streamline deployment pipelines.

How does "Docker: Up & Running" by Karl Matthias explain Docker’s architecture and core components?

  • Client-server model: Docker consists of a client and a server (daemon), with the client sending commands to the daemon to manage containers.
  • Docker registry: Registries (public or private) store Docker images and metadata, enabling image distribution and sharing.
  • Networking and storage: Docker uses Linux kernel features like namespaces, cgroups, and virtual networking to isolate containers and manage resources.
  • Layered filesystems: Storage backends like AUFS and overlayfs enable efficient image layering and management.

How are Docker images built and managed according to "Docker: Up & Running"?

  • Layered image construction: Docker images are built from stacked filesystem layers, each representing a build step, enabling efficient reuse and caching.
  • Dockerfile usage: Images are defined using Dockerfiles, specifying base images, commands, file additions, environment variables, and default commands.
  • Building and tagging: The docker build command creates images, which are tagged for versioning and stored in registries for sharing and deployment.
  • Efficient updates: Only changed layers need to be rebuilt or transferred, optimizing build and deployment times.

How do Docker containers work and what are their key features in "Docker: Up & Running"?

  • Isolated processes: Containers are lightweight wrappers around processes, isolated via namespaces and cgroups but sharing the host kernel.
  • Ephemeral by design: Containers can be quickly created, started, stopped, paused, and destroyed, supporting rapid scaling and updates.
  • Configurable resources: Containers can be assigned names, labels, resource limits, and mounted volumes for persistent storage.
  • Stateless best practice: The book recommends designing containers to be stateless, with persistent data externalized for scalability and reliability.

What is the recommended Docker workflow in "Docker: Up & Running" by Karl Matthias?

  • Revision control and image building: Start with a single codebase in version control and build Docker images that encapsulate all dependencies.
  • Testing and packaging: Test the exact image that will run in production, using tools like Docker Compose for external dependencies.
  • Deployment and scaling: Deploy images consistently across servers, progressing from manual commands to orchestration tools as scale increases.
  • Automation integration: The workflow integrates with CI systems, automating builds, tests, and deployments for efficiency and reliability.

How does "Docker: Up & Running" by Karl Matthias address deploying and orchestrating containers in production?

  • Shipping container metaphor: Docker containers provide a standardized interface, simplifying deployment and reducing errors.
  • Deployment progression: Teams evolve from local builds to orchestrated, multi-server deployments, improving process fluidity and reliability.
  • Orchestration tools: The book covers tools like Swarm, Centurion, Helios, Kubernetes, and Mesos for managing container fleets and scaling applications.
  • Start simple, scale up: It advises beginning with basic tools and moving to more complex orchestration as organizational needs grow.

What are the best practices for testing and debugging Docker containers in "Docker: Up & Running"?

  • Test production images: Always test the exact image intended for production, using environment variables or arguments to switch behavior for testing.
  • Automate testing: Integrate builds and tests with CI systems, running test suites inside containers and tagging successful builds for deployment.
  • Debugging tools: Use docker top, ps, strace, and lsof to inspect container processes, and docker diff for filesystem changes.
  • Network and log inspection: Understand Docker’s network namespaces and proxy, and use logging drivers and external aggregation tools for monitoring.

How does "Docker: Up & Running" by Karl Matthias address Docker security and isolation?

  • Kernel sharing risks: Containers share the host kernel, so isolation is weaker than with VMs; root inside a container is root on the host.
  • Least privilege principle: Run containers as non-root users and avoid using --privileged unless absolutely necessary.
  • Selective capabilities: Add only required kernel capabilities to containers, minimizing potential attack surfaces.
  • Mandatory Access Control: Use SELinux or AppArmor profiles to enforce security policies and restrict container access to sensitive host resources.

What application and platform design principles does "Docker: Up & Running" by Karl Matthias recommend?

  • Twelve-Factor App alignment: Emphasizes single codebase, explicit dependencies, environment-based configuration, stateless processes, and attached backing services for portability and scalability.
  • Reactive Manifesto principles: Encourages building applications that are responsive, resilient, elastic, and message-driven, leveraging Docker’s dynamic container model.
  • Production platform design: Recommends fast startup/shutdown, concurrency, logging to stdout, and one-off admin tasks for robust container platforms.
  • Development/production parity: Stresses minimizing environment divergence to reduce risk and ensure reliable deployments.

Отзывы

3.77 из 5
Средняя оценка на основе 100+ оценки с Goodreads и Amazon.

Docker: Быстрый старт получает смешанные отзывы, со средней оценкой 3.77 из 5. Читатели ценят его за ясные объяснения основ Docker и продвинутых тем, особенно в области безопасности и отладки. Многие считают его хорошим введением для новичков, хотя некоторые критикуют за устаревшее содержание и недостаточное освещение более широкой экосистемы Docker. Книга хвалится за лаконичное изложение и практические примеры, но критикуется за отсутствие тем, таких как Docker Compose. Некоторые читатели считают её слишком простой, в то время как другие находят её ценным ресурсом для понимания основных концепций Docker.

Your rating:
4.32
27 оценки

Об авторе

Карл Маттиас — опытный автор и эксперт в области технологий, известный своей работой над Docker и связанными технологиями. Хотя конкретная биографическая информация в предоставленном содержании отсутствует, его книга "Docker: Up and Running" свидетельствует о его обширных знаниях в области контейнеризации, DevOps и облачных вычислений. Стиль письма Маттиаса описывается как ясный и лаконичный, с акцентом на практические примеры и реальные приложения. Его способность объяснять сложные технические концепции в доступной форме ценится читателями, особенно теми, кто только начинает знакомиться с Docker. Экспертиза Маттиаса в области безопасности Docker и продвинутых тем указывает на глубокое понимание технологии и ее экосистемы.

Listen
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jun 7,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...