-->

Docker


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

Что такое Docker
Упрощенно, Docker - это технология виртуализации приложений, в отличие от систем виртуализации операционных систем (таких как VmWare, VirtualBox etc.)
Естественно, плюсы этой технологии очевидны:
  • чистота "родной" операционной системы после установки/удаления приложения;
  • возможность простого отката при различных настройках приложения до любого сохраненного состояния вплоть до "чисто-установленного";
  • возможность экспериментировать с различными версиями приложений, различными настройками без переустановок;
  • и основное - возможность передачи всего комплекса приложений (например, база данных + сервер приложений + web-сервер) определенных версий, с определенными настройками, т.е. гарантированно воспроизводящих требуемое поведение, коллегам, тестировщикам, заказчику и т.д.
Основной ресурс (неожиданно ;-) - www.docker.com.
Тут можно найти и установщик, и репозиторий образов, и документацию, и сообщество...

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

Теперь немного про определения
Образ (image) - это "родитель" последующих контейнеров. Обычно это чисто установленное приложение.
Контейнер (container) - это экземпляр образа, т.е. наследник с какими-то дополнительными свойствами (обновлениями, настройками, другими образами и т.п.). Именно контейнер под управлением службы docker эмулирует определенное приложение.

Практические заметки
Установка службы docker производится согласно "обычиям" вашей операционной системы.
Я экспериментировал на Centos 7, поэтому тупо выполнил
# yum install docker
Однако, после заметил отсутствие такого компонента, как docker-compose. Для его установки мне понадобилось сделать следующее:
# yum install epel-release
# yum install -y python-pip
# pip install docker-compose
и на всякий случай
# yum upgrade python*
(пользователям Windows и MacOS, по-моему, ничего не требуется - всё устанавливается одним инсталлятором)

Образ можно создавать самому, описывая процесс создания в текстовом файле Dockerfile. Получая данный файл на вход командой:
# docker build .
служба docker, пошагово выполняя команды этого файла, собирает образ - скачивает необходимые дистрибутивы и/или сопутствующие образы, обновляет необходимые пакеты и т.п.
Центральный репозиторий образов расположен по адресу hub.docker.com.
Отсюда можно скачать готовые образы, обычно командой:
# docker pull [имя_образа]
или найти готовые Dockerfile для самостоятельно создания нужных образов.

Поиск нужного образа:
# docker search [OPTIONS] TERM

Образы в локальном репозитории:
# docker images

Все контейнеры в системе:
# docker ps -a

Только запущенные (рабочие) контейнеры:
# docker ps

Запуск контейнера (данная команда с опциями и аргументами - самое главное для настройки окружения запускаемого приложения):
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Выключение запущенного контейнера:
# docker stop [OPTIONS] CONTAINER [CONTAINER...]

Приостановка запущенного контейнера и возобновление работы:
# docker pause CONTAINER [CONTAINER...]
# docker unpause CONTAINER [CONTAINER...]

Ключевые моменты запуска контейнера




























Комментариев нет :

Отправить комментарий