Docker

Описание
Docker — автоматизированное средство управления виртуальными контейнерами.

Docker (Докер) — программное обеспечение с открытым исходным кодом, применяемое для разработки, тестирования, доставки и запуска веб-приложений в средах с поддержкой контейнеризации. Основной принцип работы Docker — контейнеризация приложений. Этот тип виртуализации позволяет упаковывать программное обеспечение по изолированным средам — контейнерам.

Как работает Docker?
1. Пользователь отдает команду с помощью клиентского интерфейса Docker-демону, развернутому на Docker-хосте.

Например, скачать готовый образ из реестра (хранилища Docker-образов) с помощью команды docker pull. Взаимодействие между клиентом и демоном обеспечивает REST API. Демон может использовать публичный (Docker Hub) или частные реестры.

2. Исходя из команды, заданной клиентом, демон выполняет различные операции с образами на основе инструкций, прописанных в файле Dockerfile.

Например, производит их автоматическую сборку с помощью команды docker build.

3. Работа образа в контейнере. Например, запуск docker-image, посредством команды docker run или удаление контейнера через команду docker kill.
Контейнер
Контейнер (Docker Container) — уже собранное и запущенное приложение в изолированном окружении, в соответствии с образом. Каждый слой контейнера расширяет функциональность, формируя стек используемых инструментов, платформ и настроек системных служб.
Как работают контейнеры?
Каждый контейнер строится на основе Docker-образов. Контейнеры запускаются напрямую из ядра операционной системы Linux. Благодаря этому, они потребляют гораздо меньше ресурсов, чем при аппаратной виртуализации.

Изоляция рабочей среды осуществляется при помощи технологии namespace. Для каждого изолированного пространства (контейнера) создается уникальное пространство имен, которое и обеспечивает к нему доступ.

Любой процесс, выполняемый внутри контейнера, ограничивается namespace.

В ОС Linux посредством Docker Engine используется немного другая технология — контрольные группы (cgroups). При этом приложение ограничивается некоторым набором ресурсов.

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

ручное тестирование
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • ручное тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.
Релиз
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • ручное тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.
развертывание
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • ручное тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.
поддержка и мониторинг
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • ручное тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.
планирование
Работа системы инструментов CI/CD основана на цикличности. Цикл применения инструментов состоит из следующих этапов:

  • написание кода;
  • сборка;
  • ручное тестирование;
  • релиз;
  • развёртывание;
  • поддержка и мониторинг;
  • планирование.