Использование Docker

Адриан Муат

Первая публикация на английском языке: декабрь 2015

 Авторские права

 Введение

 Кто должен читать эту книгу?

 Зачем я написал эту книгу?

 Навигация по этой книге

 Используемые в этой книге соглашения

 Использование примеров кода

 Safari® Books Online

 Наши контакты

 Благодарности

 Об авторах

 Содержание

Вводные материалы
Авторские права
Кто должен читать эту книгу?
Зачем я написал эту книгу?
Навигация по этой книге
Используемые в этой книге соглашения
Использование примеров кода
Safari® Books Online
Наши контакты
Благодарности
Об авторах
Оглавление
Часть 1. Предпосылки и основы
1. Что и почему контейнеров
Контейнеры против виртуальных машин
Docker и контейнеры
Docker: история
Плагины и сантехника
Linux 64-бита
2. Установка
Установка Docker в Linux
Выполнение SELinux в разрешающем режиме
Выполнение без sudo
Установка Docker на Mac OS или Windows
Быстрая проверка
3. Первые шаги
Запуск вашего первого образа
Основные команды
Построение образов из Dockerfile
Работа с реестрами
Частные репозитории
Применение официального образа Redis
Заключение
4. Основы Docker
Архитектура Docker
Технологии, лежащие в основе
Окружающие технологии
Docker хостинг
Как выполняется построение образов
Контекст сборки
Уровни образа
Кэширование
Базовые образы
Инструкции Dockerfile
Соединение контейнеров с миром
Связывание контейнеров
Управление данными томами и контейнерами данных
Совместное использование данных
Контейнеры данных
Удаление томов
Общие команды Docker
Команда run
Управление контейнерами
Информация Docker
Информация контейнера
Обращение с образами
Использование реестра
Заключение
Часть 2. Жизненный цикл программного обеспечения с применением Docker
5. Применение Docker при разработке
Скажем "Hello World!"
Автоматизация при помощи Compose
Рабочий поток Compose
Заключение
6. Создание простого веб- приложения
Создание основной веб- страницы
Использование преимуществ существующих образов
Добавьте некое кэширование
Микрослужбы
Заключение
7. Распространение образов
Именование образа и репозитория
Хаб Docker
Автоматизированное построение
Частное распространение
Работа вашего собственного реестра
Коммерческая регистрация
Уменьшение размера образа
Происхождение образа
Заключение
8. Непрерывные интеграция и тестирование с Docker
Добавление блоков тестирования в Identidock
Создание контейнеров Jenkins
Переключающие построения
Активная доставка образов
Осознанная маркировка
Постановка и производство
Разрастание образов
Применение Docker для снабжения подчиненными Jenkins
Резервирование Jenkins
CI решения хостинга
Тестирование и микрослужбы
Тестирование в производстве
Заключение
9. Развертывание контейнеров
Предоставление ресурсов посредством машин Docker
Применение прокси
Опции выполнения
Сценарии оболочки
Применение системы управления процессами (или systemd для управления всем)
Использование средств управления настройкой
Настройка хоста
Выбор операционной системы
Выбор устройства хранения
Специальные опции хостинга
Triton
Google Container Engine
Amazon EC2 Container Service
Giant Swarm
Данные постоянного хранения и серийные контейнеры
Совместное использование секретной информации
Хранение секретов в образах
Передача секретной информации через окружение
Передача секретной информации в томах
Применение хранения ключ- значение
Сетевая среда
Производственные реестры
Непрерывные разработка/ доставка
Заключение
10. Регистрация и мониторинг
Регистрация
Ведение журналов Docker по умолчанию
Агрегирование журналов
Регистрация при помощи ELK
Ведение журналов Docker посредством syslog
Захват регистрационных записей из файла
Мониторинг и оповещение
Мониторинг инструментами Docker
cAdvisor
Кластерные решения
Коммерческие решения мониторинга и регистрации
Заключение
Часть 3. Инструменты и технологии
11. Обнаружение сетевой среды и служб
Представители
Обнаружение служб
etcd
SkyDNS
Consul
Регистрация
Другие решения
Сетевые опции
Мост
Хост
Контейнер
Ничего
Новая сетевая среда Docker
Типы сетей и подключаемые модули
Сетевые решения
Overlay
Weave
Flannel
Проект Calico
Заключение
12. Оркестровка, кластеризация и управление
Инструменты кластеризации и оркестровки
Swarm
Fleet
Kubernetes
Mesos и Marathon
Платформы управления контейнерами
Rancher
Clocker
Tutum
Заключение
13. Безопасность и ограничения контейнеров
Вещи, о которых стоит беспокоиться
Эшелонированная оборона
Наименьший уровень привилегий
Обеспечение безопасности Identidock
Разделение контейнеров по хостам
Применение обновлений
Избегайте неподдерживаемых драйверов
Происхождение образов
Docker Digests
Docker Content Trust
Воспроизводимые и надёжные Dockerfile
Советы по безопасности
Устанавливайте пользователя
Ограничивайте сетевую среду контейнера
Удаляйте двоичные файлы Setuid/Setgid
Ограничивайте память
Ограничивайте ЦПУ
Ограничивайте перезапуски
Ограничивайте файловые системы
Ограничивайте возможности
Применяйте пределы ресурсов (ulimit)
Работайте с устоявшимся ядром
Модули безопасности Linux
SELinux
AppArmor
Аудит
Реакция на инциденты
Грядущая функциональность
Заключение
Указатель