Автоматизация тестирования – секрет успеха DevOps, необходимый в мире непрерывного развертывания и коротких циклов разработки. Для достижения высокой скорости и гибкости важно автоматизировать процессы тестирования и настроить их на автоматический запуск, чтобы получать автоматическую обратную связь по каждому коммиту в коде.
В этой статье мы сосредоточимся на базовых понятиях о Docker: что такое Docker, его основные компоненты, как настроить среду Docker. Давайте начнем!
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО DOCKER
Почему Docker?
Прошли те времена, когда приложения и их зависимости требовалось настраивать на различных физических системах для разработки, тестирования и делать их доступными для конечного пользователя. Появление виртуализации аппаратного обеспечения внутри одной системы позволило избавиться от этих ограничений, которые не давали нам полной свободы. Но за это тоже пришлось заплатить свою цену, и многие ресурсы, остававшиеся нетронутыми, в конце концов уступили концепции контейнеризации.
Говоря простым языком, контейнеризация – это процесс упаковывания программного обеспечения и его зависимостей, позволяющий быстро и надежно переносить приложение из одной вычислительной среды в другую для его разработки, доставки и развертывания.
Архитектура Docker
Docker является стандартом де-факто для сборки, запуска и совместного использования контейнерных приложений – от настольных до облачных. Docker использует клиент-серверную архитектуру следующим образом:
- Клиент Docker общается с демоном Docker, который выполняет всю работу по созданию, запуску и распределению контейнеров Docker.
- Клиент и демон могут работать на одной системе, либо можно подключить клиента Docker к удаленному (remote) демону Docker.
- Docker-клиент и демон взаимодействуют с помощью REST API, через сокеты UNIX или сетевой интерфейс.
Компоненты Docker
Docker состоит из следующих компонентов:
- Docker Desktop for Mac – позволяет запускать контейнеры Docker на операционной системе Mac OS.
- Docker Desktop for Linux – Позволяет запускать контейнеры Docker на Linux OS.
- Docker Desktop for Windows – позволяет запускать контейнеры Docker на операционной системе Windows.
- Docker Engine – используется для сборки образов Docker и создания контейнеров Docker.
- Docker Hub – реестр, используемый для размещения различных образов Docker.
- Docker Compose – используется для определения приложений с помощью нескольких контейнеров Docker.
Объекты Docker
При использовании Docker создаются и используются образы, контейнеры, сети, тома, плагины и другие объекты. В данном разделе приводится краткий обзор некоторых из этих объектов:
- Образы: Образ – это шаблон, доступный только для чтения, содержащий инструкции по созданию контейнера Docker. Вы можете создать свой собственный образ, используя Dockerfile с простым синтаксисом для определения шагов, необходимых для создания образа и его запуска, или создать образ на основе другого образа, добавив в него инструкции под ваши нужды.
- Контейнеры: Контейнер – это запускаемый экземпляр Docker-образа. Контейнер можно создать, запустить, остановить, переместить или удалить с помощью Docker API или CLI. Контейнер можно подключить к одной или нескольким сетям, присоединить к нему хранилище или даже создать новый образ на основе его текущего состояния.
- Сервисы (или службы): Сервисы позволяют масштабировать контейнеры с помощью нескольких демонов Docker, которые работают как рой с несколькими менеджерами и воркерами (workers).
Docker Hub
В реестре Docker хранятся Docker-образы. Docker Hub – это общедоступный реестр, который может использовать любой желающий, и Docker по умолчанию настроен на поиск образов на Docker Hub. Можно даже запустить собственный частный реестр.
Docker Compose
Compose – это инструмент для определения и запуска мульти-контейнерных приложений Docker. С помощью Compose вы используете YAML-файл для конфигурирования сервисов вашего приложения. Затем с помощью одной команды создаются и запускаются все сервисы из конфигурации. Compose отлично подходит для сред разработки, тестирования и стейджинга (демо-стенда), а также для рабочих процессов CI.
Особенности Docker
- Docker позволяет уменьшить размер среды разработки с помощью контейнеров Docker за счет уменьшения места, занимаемого операционной системой.
- С помощью контейнеров Docker командам из различных подразделений, таких как отдел разработки, отдел контроля качества и отдел эксплуатации, становится проще работать над приложениями.
- Контейнеры можно развернуть где угодно, на любых физических и виртуальных машинах и даже в облаке.
- Поскольку контейнеры Docker имеют относительно небольшой вес, они легко масштабируются.
Настройка среды Docker
Для загрузки и установки Docker Desktop следуйте инструкциям, соответствующим вашей операционной системе:
- Docker Desktop для Mac: https://docs.docker.com/docker-for-mac/install/
- Docker Desktop для Windows: https://docs.docker.com/docker-for-windows/install/
- Docker Desktop для Linux: https://docs.docker.com/desktop/install/linux-install/
После успешной установки Docker Desktop можно проверить версию Docker, нажав на иконку с изображением кита в левой верхней части экрана и выбрав пункт “About Docker Desktop”.
Откройте терминал и выполните команду docker --version
, чтобы проверить версию Docker, установленную на вашей машине. Также вы можете посмотреть более детальную информацию о версии, выполнив команду:
- $ docker version
Проверьте работоспособность установки, запустив Docker-образ hello-world:
- $ docker run hello-world
FAQs
1. Что такое Docker Compose?
Docker Compose – это инструмент, разработанный для определения и совместного использования мульти-контейнерных приложений. С помощью Docker Compose мы можем создать YAML-файл, в котором определим наш сервис (или несколько сервисов), затем одной командой запустить все контейнеры сервиса, а другой командой остановить.
2. В чем разница между командами Docker и Docker Compose?
Разница между Docker и Docker Compose проста: команды docker
ориентированы только на один контейнер (или образ), в то время как docker compose
управляет несколькими контейнерами Docker.
3. В чем разница между файлами Docker и Docker Compose?
Docker-файл – это простой текстовый файл, содержащий команды, которые пользователь может вызвать для сборки образа Docker, в то время как Docker Compose – это инструмент для определения и запуска приложений, использующих несколько контейнеров Docker.
Заключение
В этой статье мы познакомились с Docker и сделали первый шаг к его дальнейшему изучению! Docker стал неотъемлемой частью в разработке ПО, поэтому чем раньше вы его освоите, тем быстрее вы сможете воспользоваться его преимуществами.
Перевод статьи «Introduction to Docker & Docker Desktop».
Пингбэк: Docker: руководство для автоматизации тестирования
Пингбэк: Как протестировать приложение с помощью Postman и контейнеров Docker